TPTP Problem File: ITP049^2.p

View Solutions - Solve Problem

%------------------------------------------------------------------------------
% File     : ITP049^2 : TPTP v8.2.0. Released v7.5.0.
% Domain   : Interactive Theorem Proving
% Problem  : Sledgehammer EdmondsKarp_Termination_Abstract problem prob_229__7588066_1
% Version  : Especial.
% English  :

% Refs     : [BH+15] Blanchette et al. (2015), Mining the Archive of Formal
%          : [Des21] Desharnais (2021), Email to Geoff Sutcliffe
% Source   : [Des21]
% Names    : EdmondsKarp_Termination_Abstract/prob_229__7588066_1 [Des21]

% Status   : Theorem
% Rating   : 0.00 v7.5.0
% Syntax   : Number of formulae    :  325 (  74 unt;  44 typ;   0 def)
%            Number of atoms       :  789 ( 142 equ;   0 cnn)
%            Maximal formula atoms :   13 (   2 avg)
%            Number of connectives : 5341 (  81   ~;   7   |;  50   &;4788   @)
%                                         (   0 <=>; 415  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   28 (  10 avg)
%            Number of types       :    3 (   2 usr)
%            Number of type conns  :  236 ( 236   >;   0   *;   0   +;   0  <<)
%            Number of symbols     :   44 (  42 usr;   3 con; 0-5 aty)
%            Number of variables   : 1195 (  82   ^;1018   !;  50   ?;1195   :)
%                                         (  45  !>;   0  ?*;   0  @-;   0  @+)
% SPC      : TH1_THM_EQU_NAR

% Comments : This file was generated by Sledgehammer 2021-02-23 16:16:10.366
%------------------------------------------------------------------------------
% Could-be-implicit typings (5)
thf(ty_t_Product__Type_Oprod,type,
    product_prod: $tType > $tType > $tType ).

thf(ty_t_List_Olist,type,
    list: $tType > $tType ).

thf(ty_t_Set_Oset,type,
    set: $tType > $tType ).

thf(ty_t_Nat_Onat,type,
    nat: $tType ).

thf(ty_tf_a,type,
    a: $tType ).

% Explicit typings (39)
thf(sy_cl_HOL_Otype,type,
    type: 
      !>[A: $tType] : $o ).

thf(sy_cl_Orderings_Oord,type,
    ord: 
      !>[A: $tType] : $o ).

thf(sy_cl_Orderings_Oorder,type,
    order: 
      !>[A: $tType] : $o ).

thf(sy_cl_Finite__Set_Ofinite,type,
    finite_finite: 
      !>[A: $tType] : $o ).

thf(sy_cl_Orderings_Olinorder,type,
    linorder: 
      !>[A: $tType] : $o ).

thf(sy_cl_Orderings_Opreorder,type,
    preorder: 
      !>[A: $tType] : $o ).

thf(sy_cl_Rings_Olinordered__idom,type,
    linordered_idom: 
      !>[A: $tType] : $o ).

thf(sy_c_BNF__Cardinal__Order__Relation_OrelChain,type,
    bNF_Ca1785829860lChain: 
      !>[A: $tType,B: $tType] : ( ( set @ ( product_prod @ A @ A ) ) > ( A > B ) > $o ) ).

thf(sy_c_EdmondsKarp__Termination__Abstract__Mirabelle__klniualtan_Oek__analysis,type,
    edmond2129202899alysis: 
      !>[A: $tType] : ( ( ( product_prod @ nat @ nat ) > A ) > $o ) ).

thf(sy_c_EdmondsKarp__Termination__Abstract__Mirabelle__klniualtan_Oek__analysis__defs_OspEdges,type,
    edmond1803015688pEdges: 
      !>[A: $tType] : ( ( ( product_prod @ nat @ nat ) > A ) > nat > nat > ( set @ ( product_prod @ nat @ nat ) ) ) ).

thf(sy_c_Finite__Set_Ofinite,type,
    finite_finite2: 
      !>[A: $tType] : ( ( set @ A ) > $o ) ).

thf(sy_c_Graph_OFinite__Graph,type,
    finite_Graph: 
      !>[A: $tType] : ( ( ( product_prod @ nat @ nat ) > A ) > $o ) ).

thf(sy_c_Graph_OGraph_OE,type,
    e: 
      !>[Capacity: $tType] : ( ( ( product_prod @ nat @ nat ) > Capacity ) > ( set @ ( product_prod @ nat @ nat ) ) ) ).

thf(sy_c_Graph_OGraph_OV,type,
    v: 
      !>[Capacity: $tType] : ( ( ( product_prod @ nat @ nat ) > Capacity ) > ( set @ nat ) ) ).

thf(sy_c_Graph_OGraph_Oadjacent__nodes,type,
    adjacent_nodes: 
      !>[Capacity: $tType] : ( ( ( product_prod @ nat @ nat ) > Capacity ) > nat > ( set @ nat ) ) ).

thf(sy_c_Graph_OGraph_Oconnected,type,
    connected: 
      !>[Capacity: $tType] : ( ( ( product_prod @ nat @ nat ) > Capacity ) > nat > nat > $o ) ).

thf(sy_c_Graph_OGraph_Oincoming,type,
    incoming: 
      !>[Capacity: $tType] : ( ( ( product_prod @ nat @ nat ) > Capacity ) > nat > ( set @ ( product_prod @ nat @ nat ) ) ) ).

thf(sy_c_Graph_OGraph_Oincoming_H,type,
    incoming2: 
      !>[Capacity: $tType] : ( ( ( product_prod @ nat @ nat ) > Capacity ) > ( set @ nat ) > ( set @ ( product_prod @ nat @ nat ) ) ) ).

thf(sy_c_Graph_OGraph_OisPath,type,
    isPath: 
      !>[Capacity: $tType] : ( ( ( product_prod @ nat @ nat ) > Capacity ) > nat > ( list @ ( product_prod @ nat @ nat ) ) > nat > $o ) ).

thf(sy_c_Graph_OGraph_OisShortestPath,type,
    isShortestPath: 
      !>[Capacity: $tType] : ( ( ( product_prod @ nat @ nat ) > Capacity ) > nat > ( list @ ( product_prod @ nat @ nat ) ) > nat > $o ) ).

thf(sy_c_Graph_OGraph_OisSimplePath,type,
    isSimplePath: 
      !>[Capacity: $tType] : ( ( ( product_prod @ nat @ nat ) > Capacity ) > nat > ( list @ ( product_prod @ nat @ nat ) ) > nat > $o ) ).

thf(sy_c_Graph_OGraph_Ooutgoing,type,
    outgoing: 
      !>[Capacity: $tType] : ( ( ( product_prod @ nat @ nat ) > Capacity ) > nat > ( set @ ( product_prod @ nat @ nat ) ) ) ).

thf(sy_c_Graph_OGraph_Ooutgoing_H,type,
    outgoing2: 
      !>[Capacity: $tType] : ( ( ( product_prod @ nat @ nat ) > Capacity ) > ( set @ nat ) > ( set @ ( product_prod @ nat @ nat ) ) ) ).

thf(sy_c_Graph_OGraph_OreachableNodes,type,
    reachableNodes: 
      !>[Capacity: $tType] : ( ( ( product_prod @ nat @ nat ) > Capacity ) > nat > ( set @ nat ) ) ).

thf(sy_c_List_Olist_Oset,type,
    set2: 
      !>[A: $tType] : ( ( list @ A ) > ( set @ A ) ) ).

thf(sy_c_Orderings_Oord__class_Oless__eq,type,
    ord_less_eq: 
      !>[A: $tType] : ( A > A > $o ) ).

thf(sy_c_Product__Type_OPair,type,
    product_Pair: 
      !>[A: $tType,B: $tType] : ( A > B > ( product_prod @ A @ B ) ) ).

thf(sy_c_Product__Type_OSigma,type,
    product_Sigma: 
      !>[A: $tType,B: $tType] : ( ( set @ A ) > ( A > ( set @ B ) ) > ( set @ ( product_prod @ A @ B ) ) ) ).

thf(sy_c_Product__Type_Oold_Oprod_Orec__prod,type,
    product_rec_prod: 
      !>[A: $tType,B: $tType,T: $tType] : ( ( A > B > T ) > ( product_prod @ A @ B ) > T ) ).

thf(sy_c_Product__Type_Oprod_Oswap,type,
    product_swap: 
      !>[A: $tType,B: $tType] : ( ( product_prod @ A @ B ) > ( product_prod @ B @ A ) ) ).

thf(sy_c_Relation_ODomain,type,
    domain: 
      !>[A: $tType,B: $tType] : ( ( set @ ( product_prod @ A @ B ) ) > ( set @ A ) ) ).

thf(sy_c_Relation_OImage,type,
    image: 
      !>[A: $tType,B: $tType] : ( ( set @ ( product_prod @ A @ B ) ) > ( set @ A ) > ( set @ B ) ) ).

thf(sy_c_Relation_ORange,type,
    range: 
      !>[A: $tType,B: $tType] : ( ( set @ ( product_prod @ A @ B ) ) > ( set @ B ) ) ).

thf(sy_c_Set_OCollect,type,
    collect: 
      !>[A: $tType] : ( ( A > $o ) > ( set @ A ) ) ).

thf(sy_c_Transitive__Closure_Ortrancl,type,
    transitive_rtrancl: 
      !>[A: $tType] : ( ( set @ ( product_prod @ A @ A ) ) > ( set @ ( product_prod @ A @ A ) ) ) ).

thf(sy_c_member,type,
    member: 
      !>[A: $tType] : ( A > ( set @ A ) > $o ) ).

thf(sy_v_c,type,
    c: ( product_prod @ nat @ nat ) > a ).

thf(sy_v_s,type,
    s: nat ).

thf(sy_v_t,type,
    t: nat ).

% Relevant facts (256)
thf(fact_0_ek__analysis__axioms,axiom,
    edmond2129202899alysis @ a @ c ).

% ek_analysis_axioms
thf(fact_1__092_060open_062finite_AE_A_092_060Longrightarrow_062_Afinite_AspEdges_092_060close_062,axiom,
    ( ( finite_finite2 @ ( product_prod @ nat @ nat ) @ ( e @ a @ c ) )
   => ( finite_finite2 @ ( product_prod @ nat @ nat ) @ ( edmond1803015688pEdges @ a @ c @ s @ t ) ) ) ).

% \<open>finite E \<Longrightarrow> finite spEdges\<close>
thf(fact_2_ek__analysis__defs_OspEdges_Ocong,axiom,
    ! [A: $tType] :
      ( ( linordered_idom @ A )
     => ( ( edmond1803015688pEdges @ A )
        = ( edmond1803015688pEdges @ A ) ) ) ).

% ek_analysis_defs.spEdges.cong
thf(fact_3_finite__E,axiom,
    finite_finite2 @ ( product_prod @ nat @ nat ) @ ( e @ a @ c ) ).

% finite_E
thf(fact_4_spEdges__ss__E,axiom,
    ord_less_eq @ ( set @ ( product_prod @ nat @ nat ) ) @ ( edmond1803015688pEdges @ a @ c @ s @ t ) @ ( e @ a @ c ) ).

% spEdges_ss_E
thf(fact_5_Finite__Graph__axioms,axiom,
    finite_Graph @ a @ c ).

% Finite_Graph_axioms
thf(fact_6_finite__code,axiom,
    ! [A: $tType] :
      ( ( finite_finite @ A )
     => ( ( finite_finite2 @ A )
        = ( ^ [A2: set @ A] : $true ) ) ) ).

% finite_code
thf(fact_7_Finite__Graph__EI,axiom,
    ( ( finite_finite2 @ ( product_prod @ nat @ nat ) @ ( e @ a @ c ) )
   => ( finite_Graph @ a @ c ) ) ).

% Finite_Graph_EI
thf(fact_8_finite__set__choice,axiom,
    ! [B: $tType,A: $tType,A3: set @ A,P: A > B > $o] :
      ( ( finite_finite2 @ A @ A3 )
     => ( ! [X: A] :
            ( ( member @ A @ X @ A3 )
           => ? [X_1: B] : ( P @ X @ X_1 ) )
       => ? [F: A > B] :
          ! [X2: A] :
            ( ( member @ A @ X2 @ A3 )
           => ( P @ X2 @ ( F @ X2 ) ) ) ) ) ).

% finite_set_choice
thf(fact_9_finite,axiom,
    ! [A: $tType] :
      ( ( finite_finite @ A )
     => ! [A3: set @ A] : ( finite_finite2 @ A @ A3 ) ) ).

% finite
thf(fact_10_connected__refl,axiom,
    ! [V: nat] : ( connected @ a @ c @ V @ V ) ).

% connected_refl
thf(fact_11_spEdges__def,axiom,
    ( ( edmond1803015688pEdges @ a @ c @ s @ t )
    = ( collect @ ( product_prod @ nat @ nat )
      @ ^ [E: product_prod @ nat @ nat] :
        ? [P2: list @ ( product_prod @ nat @ nat )] :
          ( ( member @ ( product_prod @ nat @ nat ) @ E @ ( set2 @ ( product_prod @ nat @ nat ) @ P2 ) )
          & ( isShortestPath @ a @ c @ s @ P2 @ t ) ) ) ) ).

% spEdges_def
thf(fact_12_finite__Range,axiom,
    ! [B: $tType,A: $tType,R: set @ ( product_prod @ A @ B )] :
      ( ( finite_finite2 @ ( product_prod @ A @ B ) @ R )
     => ( finite_finite2 @ B @ ( range @ A @ B @ R ) ) ) ).

% finite_Range
thf(fact_13_finite__Domain,axiom,
    ! [B: $tType,A: $tType,R: set @ ( product_prod @ A @ B )] :
      ( ( finite_finite2 @ ( product_prod @ A @ B ) @ R )
     => ( finite_finite2 @ A @ ( domain @ A @ B @ R ) ) ) ).

% finite_Domain
thf(fact_14_Efin__imp__Vfin,axiom,
    ( ( finite_finite2 @ ( product_prod @ nat @ nat ) @ ( e @ a @ c ) )
   => ( finite_finite2 @ nat @ ( v @ a @ c ) ) ) ).

% Efin_imp_Vfin
thf(fact_15_connected__inV__iff,axiom,
    ! [U: nat,V: nat] :
      ( ( connected @ a @ c @ U @ V )
     => ( ( member @ nat @ V @ ( v @ a @ c ) )
        = ( member @ nat @ U @ ( v @ a @ c ) ) ) ) ).

% connected_inV_iff
thf(fact_16_obtain__shortest__path,axiom,
    ! [U: nat,V: nat] :
      ( ( connected @ a @ c @ U @ V )
     => ~ ! [P3: list @ ( product_prod @ nat @ nat )] :
            ~ ( isShortestPath @ a @ c @ U @ P3 @ V ) ) ).

% obtain_shortest_path
thf(fact_17_finite__Collect__conjI,axiom,
    ! [A: $tType,P: A > $o,Q: A > $o] :
      ( ( ( finite_finite2 @ A @ ( collect @ A @ P ) )
        | ( finite_finite2 @ A @ ( collect @ A @ Q ) ) )
     => ( finite_finite2 @ A
        @ ( collect @ A
          @ ^ [X3: A] :
              ( ( P @ X3 )
              & ( Q @ X3 ) ) ) ) ) ).

% finite_Collect_conjI
thf(fact_18_finite__Collect__disjI,axiom,
    ! [A: $tType,P: A > $o,Q: A > $o] :
      ( ( finite_finite2 @ A
        @ ( collect @ A
          @ ^ [X3: A] :
              ( ( P @ X3 )
              | ( Q @ X3 ) ) ) )
      = ( ( finite_finite2 @ A @ ( collect @ A @ P ) )
        & ( finite_finite2 @ A @ ( collect @ A @ Q ) ) ) ) ).

% finite_Collect_disjI
thf(fact_19_finite__Collect__bounded__ex,axiom,
    ! [B: $tType,A: $tType,P: A > $o,Q: B > A > $o] :
      ( ( finite_finite2 @ A @ ( collect @ A @ P ) )
     => ( ( finite_finite2 @ B
          @ ( collect @ B
            @ ^ [X3: B] :
              ? [Y: A] :
                ( ( P @ Y )
                & ( Q @ X3 @ Y ) ) ) )
        = ( ! [Y: A] :
              ( ( P @ Y )
             => ( finite_finite2 @ B
                @ ( collect @ B
                  @ ^ [X3: B] : ( Q @ X3 @ Y ) ) ) ) ) ) ) ).

% finite_Collect_bounded_ex
thf(fact_20_finite__Collect__subsets,axiom,
    ! [A: $tType,A3: set @ A] :
      ( ( finite_finite2 @ A @ A3 )
     => ( finite_finite2 @ ( set @ A )
        @ ( collect @ ( set @ A )
          @ ^ [B2: set @ A] : ( ord_less_eq @ ( set @ A ) @ B2 @ A3 ) ) ) ) ).

% finite_Collect_subsets
thf(fact_21_finite__V,axiom,
    finite_finite2 @ nat @ ( v @ a @ c ) ).

% finite_V
thf(fact_22_Vfin__imp__Efin,axiom,
    ( ( finite_finite2 @ nat @ ( v @ a @ c ) )
   => ( finite_finite2 @ ( product_prod @ nat @ nat ) @ ( e @ a @ c ) ) ) ).

% Vfin_imp_Efin
thf(fact_23_Range__mono,axiom,
    ! [B: $tType,A: $tType,R: set @ ( product_prod @ A @ B ),S: set @ ( product_prod @ A @ B )] :
      ( ( ord_less_eq @ ( set @ ( product_prod @ A @ B ) ) @ R @ S )
     => ( ord_less_eq @ ( set @ B ) @ ( range @ A @ B @ R ) @ ( range @ A @ B @ S ) ) ) ).

% Range_mono
thf(fact_24_Domain__mono,axiom,
    ! [B: $tType,A: $tType,R: set @ ( product_prod @ A @ B ),S: set @ ( product_prod @ A @ B )] :
      ( ( ord_less_eq @ ( set @ ( product_prod @ A @ B ) ) @ R @ S )
     => ( ord_less_eq @ ( set @ A ) @ ( domain @ A @ B @ R ) @ ( domain @ A @ B @ S ) ) ) ).

% Domain_mono
thf(fact_25_finite__image__set,axiom,
    ! [A: $tType,B: $tType,P: A > $o,F2: A > B] :
      ( ( finite_finite2 @ A @ ( collect @ A @ P ) )
     => ( finite_finite2 @ B
        @ ( collect @ B
          @ ^ [Uu: B] :
            ? [X3: A] :
              ( ( Uu
                = ( F2 @ X3 ) )
              & ( P @ X3 ) ) ) ) ) ).

% finite_image_set
thf(fact_26_finite__image__set2,axiom,
    ! [A: $tType,B: $tType,C: $tType,P: A > $o,Q: B > $o,F2: A > B > C] :
      ( ( finite_finite2 @ A @ ( collect @ A @ P ) )
     => ( ( finite_finite2 @ B @ ( collect @ B @ Q ) )
       => ( finite_finite2 @ C
          @ ( collect @ C
            @ ^ [Uu: C] :
              ? [X3: A,Y: B] :
                ( ( Uu
                  = ( F2 @ X3 @ Y ) )
                & ( P @ X3 )
                & ( Q @ Y ) ) ) ) ) ) ).

% finite_image_set2
thf(fact_27_not__finite__existsD,axiom,
    ! [A: $tType,P: A > $o] :
      ( ~ ( finite_finite2 @ A @ ( collect @ A @ P ) )
     => ? [X_12: A] : ( P @ X_12 ) ) ).

% not_finite_existsD
thf(fact_28_pigeonhole__infinite__rel,axiom,
    ! [B: $tType,A: $tType,A3: set @ A,B3: set @ B,R2: A > B > $o] :
      ( ~ ( finite_finite2 @ A @ A3 )
     => ( ( finite_finite2 @ B @ B3 )
       => ( ! [X: A] :
              ( ( member @ A @ X @ A3 )
             => ? [Xa: B] :
                  ( ( member @ B @ Xa @ B3 )
                  & ( R2 @ X @ Xa ) ) )
         => ? [X: B] :
              ( ( member @ B @ X @ B3 )
              & ~ ( finite_finite2 @ A
                  @ ( collect @ A
                    @ ^ [A4: A] :
                        ( ( member @ A @ A4 @ A3 )
                        & ( R2 @ A4 @ X ) ) ) ) ) ) ) ) ).

% pigeonhole_infinite_rel
thf(fact_29_ek__analysis__def,axiom,
    ! [A: $tType] :
      ( ( linordered_idom @ A )
     => ( ( edmond2129202899alysis @ A )
        = ( finite_Graph @ A ) ) ) ).

% ek_analysis_def
thf(fact_30_ek__analysis_Ointro,axiom,
    ! [A: $tType] :
      ( ( linordered_idom @ A )
     => ! [C2: ( product_prod @ nat @ nat ) > A] :
          ( ( finite_Graph @ A @ C2 )
         => ( edmond2129202899alysis @ A @ C2 ) ) ) ).

% ek_analysis.intro
thf(fact_31_ek__analysis_Oaxioms,axiom,
    ! [A: $tType] :
      ( ( linordered_idom @ A )
     => ! [C2: ( product_prod @ nat @ nat ) > A] :
          ( ( edmond2129202899alysis @ A @ C2 )
         => ( finite_Graph @ A @ C2 ) ) ) ).

% ek_analysis.axioms
thf(fact_32_ek__analysis__defs_OspEdges__def,axiom,
    ! [A: $tType] :
      ( ( linordered_idom @ A )
     => ( ( edmond1803015688pEdges @ A )
        = ( ^ [C3: ( product_prod @ nat @ nat ) > A,S2: nat,T2: nat] :
              ( collect @ ( product_prod @ nat @ nat )
              @ ^ [E: product_prod @ nat @ nat] :
                ? [P2: list @ ( product_prod @ nat @ nat )] :
                  ( ( member @ ( product_prod @ nat @ nat ) @ E @ ( set2 @ ( product_prod @ nat @ nat ) @ P2 ) )
                  & ( isShortestPath @ A @ C3 @ S2 @ P2 @ T2 ) ) ) ) ) ) ).

% ek_analysis_defs.spEdges_def
thf(fact_33_finite__has__minimal2,axiom,
    ! [A: $tType] :
      ( ( order @ A )
     => ! [A3: set @ A,A5: A] :
          ( ( finite_finite2 @ A @ A3 )
         => ( ( member @ A @ A5 @ A3 )
           => ? [X: A] :
                ( ( member @ A @ X @ A3 )
                & ( ord_less_eq @ A @ X @ A5 )
                & ! [Xa: A] :
                    ( ( member @ A @ Xa @ A3 )
                   => ( ( ord_less_eq @ A @ Xa @ X )
                     => ( X = Xa ) ) ) ) ) ) ) ).

% finite_has_minimal2
thf(fact_34_finite__has__maximal2,axiom,
    ! [A: $tType] :
      ( ( order @ A )
     => ! [A3: set @ A,A5: A] :
          ( ( finite_finite2 @ A @ A3 )
         => ( ( member @ A @ A5 @ A3 )
           => ? [X: A] :
                ( ( member @ A @ X @ A3 )
                & ( ord_less_eq @ A @ A5 @ X )
                & ! [Xa: A] :
                    ( ( member @ A @ Xa @ A3 )
                   => ( ( ord_less_eq @ A @ X @ Xa )
                     => ( X = Xa ) ) ) ) ) ) ) ).

% finite_has_maximal2
thf(fact_35_rev__finite__subset,axiom,
    ! [A: $tType,B3: set @ A,A3: set @ A] :
      ( ( finite_finite2 @ A @ B3 )
     => ( ( ord_less_eq @ ( set @ A ) @ A3 @ B3 )
       => ( finite_finite2 @ A @ A3 ) ) ) ).

% rev_finite_subset
thf(fact_36_infinite__super,axiom,
    ! [A: $tType,S3: set @ A,T3: set @ A] :
      ( ( ord_less_eq @ ( set @ A ) @ S3 @ T3 )
     => ( ~ ( finite_finite2 @ A @ S3 )
       => ~ ( finite_finite2 @ A @ T3 ) ) ) ).

% infinite_super
thf(fact_37_finite__subset,axiom,
    ! [A: $tType,A3: set @ A,B3: set @ A] :
      ( ( ord_less_eq @ ( set @ A ) @ A3 @ B3 )
     => ( ( finite_finite2 @ A @ B3 )
       => ( finite_finite2 @ A @ A3 ) ) ) ).

% finite_subset
thf(fact_38_ek__analysis_OspEdges__ss__E,axiom,
    ! [A: $tType] :
      ( ( linordered_idom @ A )
     => ! [C2: ( product_prod @ nat @ nat ) > A,S: nat,T4: nat] :
          ( ( edmond2129202899alysis @ A @ C2 )
         => ( ord_less_eq @ ( set @ ( product_prod @ nat @ nat ) ) @ ( edmond1803015688pEdges @ A @ C2 @ S @ T4 ) @ ( e @ A @ C2 ) ) ) ) ).

% ek_analysis.spEdges_ss_E
thf(fact_39_incoming_H__edges,axiom,
    ! [U2: set @ nat] : ( ord_less_eq @ ( set @ ( product_prod @ nat @ nat ) ) @ ( incoming2 @ a @ c @ U2 ) @ ( e @ a @ c ) ) ).

% incoming'_edges
thf(fact_40_outgoing_H__edges,axiom,
    ! [U2: set @ nat] : ( ord_less_eq @ ( set @ ( product_prod @ nat @ nat ) ) @ ( outgoing2 @ a @ c @ U2 ) @ ( e @ a @ c ) ) ).

% outgoing'_edges
thf(fact_41_reachableNodes__def,axiom,
    ! [U: nat] :
      ( ( reachableNodes @ a @ c @ U )
      = ( collect @ nat @ ( connected @ a @ c @ U ) ) ) ).

% reachableNodes_def
thf(fact_42_List_Ofinite__set,axiom,
    ! [A: $tType,Xs: list @ A] : ( finite_finite2 @ A @ ( set2 @ A @ Xs ) ) ).

% List.finite_set
thf(fact_43_Graph_OEfin__imp__Vfin,axiom,
    ! [Capacity: $tType] :
      ( ( linordered_idom @ Capacity )
     => ! [C2: ( product_prod @ nat @ nat ) > Capacity] :
          ( ( finite_finite2 @ ( product_prod @ nat @ nat ) @ ( e @ Capacity @ C2 ) )
         => ( finite_finite2 @ nat @ ( v @ Capacity @ C2 ) ) ) ) ).

% Graph.Efin_imp_Vfin
thf(fact_44_Graph_OVfin__imp__Efin,axiom,
    ! [Capacity: $tType] :
      ( ( linordered_idom @ Capacity )
     => ! [C2: ( product_prod @ nat @ nat ) > Capacity] :
          ( ( finite_finite2 @ nat @ ( v @ Capacity @ C2 ) )
         => ( finite_finite2 @ ( product_prod @ nat @ nat ) @ ( e @ Capacity @ C2 ) ) ) ) ).

% Graph.Vfin_imp_Efin
thf(fact_45_mem__Collect__eq,axiom,
    ! [A: $tType,A5: A,P: A > $o] :
      ( ( member @ A @ A5 @ ( collect @ A @ P ) )
      = ( P @ A5 ) ) ).

% mem_Collect_eq
thf(fact_46_Collect__mem__eq,axiom,
    ! [A: $tType,A3: set @ A] :
      ( ( collect @ A
        @ ^ [X3: A] : ( member @ A @ X3 @ A3 ) )
      = A3 ) ).

% Collect_mem_eq
thf(fact_47_Collect__cong,axiom,
    ! [A: $tType,P: A > $o,Q: A > $o] :
      ( ! [X: A] :
          ( ( P @ X )
          = ( Q @ X ) )
     => ( ( collect @ A @ P )
        = ( collect @ A @ Q ) ) ) ).

% Collect_cong
thf(fact_48_ext,axiom,
    ! [B: $tType,A: $tType,F2: A > B,G: A > B] :
      ( ! [X: A] :
          ( ( F2 @ X )
          = ( G @ X ) )
     => ( F2 = G ) ) ).

% ext
thf(fact_49_isShortestPath__level__edge_I1_J,axiom,
    ! [S: nat,P4: list @ ( product_prod @ nat @ nat ),T4: nat,U: nat,V: nat] :
      ( ( isShortestPath @ a @ c @ S @ P4 @ T4 )
     => ( ( member @ ( product_prod @ nat @ nat ) @ ( product_Pair @ nat @ nat @ U @ V ) @ ( set2 @ ( product_prod @ nat @ nat ) @ P4 ) )
       => ( connected @ a @ c @ S @ U ) ) ) ).

% isShortestPath_level_edge(1)
thf(fact_50_isShortestPath__level__edge_I2_J,axiom,
    ! [S: nat,P4: list @ ( product_prod @ nat @ nat ),T4: nat,U: nat,V: nat] :
      ( ( isShortestPath @ a @ c @ S @ P4 @ T4 )
     => ( ( member @ ( product_prod @ nat @ nat ) @ ( product_Pair @ nat @ nat @ U @ V ) @ ( set2 @ ( product_prod @ nat @ nat ) @ P4 ) )
       => ( connected @ a @ c @ U @ V ) ) ) ).

% isShortestPath_level_edge(2)
thf(fact_51_isShortestPath__level__edge_I3_J,axiom,
    ! [S: nat,P4: list @ ( product_prod @ nat @ nat ),T4: nat,U: nat,V: nat] :
      ( ( isShortestPath @ a @ c @ S @ P4 @ T4 )
     => ( ( member @ ( product_prod @ nat @ nat ) @ ( product_Pair @ nat @ nat @ U @ V ) @ ( set2 @ ( product_prod @ nat @ nat ) @ P4 ) )
       => ( connected @ a @ c @ V @ T4 ) ) ) ).

% isShortestPath_level_edge(3)
thf(fact_52_incoming__edges,axiom,
    ! [U: nat] : ( ord_less_eq @ ( set @ ( product_prod @ nat @ nat ) ) @ ( incoming @ a @ c @ U ) @ ( e @ a @ c ) ) ).

% incoming_edges
thf(fact_53_reachable__ss__V,axiom,
    ! [S: nat] :
      ( ( member @ nat @ S @ ( v @ a @ c ) )
     => ( ord_less_eq @ ( set @ nat ) @ ( reachableNodes @ a @ c @ S ) @ ( v @ a @ c ) ) ) ).

% reachable_ss_V
thf(fact_54_connected__append__edge,axiom,
    ! [U: nat,V: nat,W: nat] :
      ( ( connected @ a @ c @ U @ V )
     => ( ( member @ ( product_prod @ nat @ nat ) @ ( product_Pair @ nat @ nat @ V @ W ) @ ( e @ a @ c ) )
       => ( connected @ a @ c @ U @ W ) ) ) ).

% connected_append_edge
thf(fact_55_reachableNodes__append__edge,axiom,
    ! [U: nat,S: nat,V: nat] :
      ( ( member @ nat @ U @ ( reachableNodes @ a @ c @ S ) )
     => ( ( member @ ( product_prod @ nat @ nat ) @ ( product_Pair @ nat @ nat @ U @ V ) @ ( e @ a @ c ) )
       => ( member @ nat @ V @ ( reachableNodes @ a @ c @ S ) ) ) ) ).

% reachableNodes_append_edge
thf(fact_56_V__def,axiom,
    ( ( v @ a @ c )
    = ( collect @ nat
      @ ^ [U3: nat] :
        ? [V2: nat] :
          ( ( member @ ( product_prod @ nat @ nat ) @ ( product_Pair @ nat @ nat @ U3 @ V2 ) @ ( e @ a @ c ) )
          | ( member @ ( product_prod @ nat @ nat ) @ ( product_Pair @ nat @ nat @ V2 @ U3 ) @ ( e @ a @ c ) ) ) ) ) ).

% V_def
thf(fact_57_incoming__def,axiom,
    ! [V: nat] :
      ( ( incoming @ a @ c @ V )
      = ( collect @ ( product_prod @ nat @ nat )
        @ ^ [Uu: product_prod @ nat @ nat] :
          ? [U3: nat] :
            ( ( Uu
              = ( product_Pair @ nat @ nat @ U3 @ V ) )
            & ( member @ ( product_prod @ nat @ nat ) @ ( product_Pair @ nat @ nat @ U3 @ V ) @ ( e @ a @ c ) ) ) ) ) ).

% incoming_def
thf(fact_58_outgoing_H__def,axiom,
    ! [K: set @ nat] :
      ( ( outgoing2 @ a @ c @ K )
      = ( collect @ ( product_prod @ nat @ nat )
        @ ^ [Uu: product_prod @ nat @ nat] :
          ? [U3: nat,V2: nat] :
            ( ( Uu
              = ( product_Pair @ nat @ nat @ V2 @ U3 ) )
            & ~ ( member @ nat @ U3 @ K )
            & ( member @ nat @ V2 @ K )
            & ( member @ ( product_prod @ nat @ nat ) @ ( product_Pair @ nat @ nat @ V2 @ U3 ) @ ( e @ a @ c ) ) ) ) ) ).

% outgoing'_def
thf(fact_59_incoming_H__def,axiom,
    ! [K: set @ nat] :
      ( ( incoming2 @ a @ c @ K )
      = ( collect @ ( product_prod @ nat @ nat )
        @ ^ [Uu: product_prod @ nat @ nat] :
          ? [U3: nat,V2: nat] :
            ( ( Uu
              = ( product_Pair @ nat @ nat @ U3 @ V2 ) )
            & ~ ( member @ nat @ U3 @ K )
            & ( member @ nat @ V2 @ K )
            & ( member @ ( product_prod @ nat @ nat ) @ ( product_Pair @ nat @ nat @ U3 @ V2 ) @ ( e @ a @ c ) ) ) ) ) ).

% incoming'_def
thf(fact_60_finite__Collect__le__nat,axiom,
    ! [K: nat] :
      ( finite_finite2 @ nat
      @ ( collect @ nat
        @ ^ [N: nat] : ( ord_less_eq @ nat @ N @ K ) ) ) ).

% finite_Collect_le_nat
thf(fact_61_finite__incoming,axiom,
    ! [U: nat] :
      ( ( finite_finite2 @ nat @ ( v @ a @ c ) )
     => ( finite_finite2 @ ( product_prod @ nat @ nat ) @ ( incoming @ a @ c @ U ) ) ) ).

% finite_incoming
thf(fact_62_finite__outgoing_H,axiom,
    ! [U2: set @ nat] :
      ( ( finite_finite2 @ nat @ ( v @ a @ c ) )
     => ( finite_finite2 @ ( product_prod @ nat @ nat ) @ ( outgoing2 @ a @ c @ U2 ) ) ) ).

% finite_outgoing'
thf(fact_63_finite__incoming_H,axiom,
    ! [U2: set @ nat] :
      ( ( finite_finite2 @ nat @ ( v @ a @ c ) )
     => ( finite_finite2 @ ( product_prod @ nat @ nat ) @ ( incoming2 @ a @ c @ U2 ) ) ) ).

% finite_incoming'
thf(fact_64_adjacent__nodes__ss__V,axiom,
    ! [U: nat] : ( ord_less_eq @ ( set @ nat ) @ ( adjacent_nodes @ a @ c @ U ) @ ( v @ a @ c ) ) ).

% adjacent_nodes_ss_V
thf(fact_65_Graph_Oincoming__def,axiom,
    ! [Capacity: $tType] :
      ( ( linordered_idom @ Capacity )
     => ( ( incoming @ Capacity )
        = ( ^ [C3: ( product_prod @ nat @ nat ) > Capacity,V2: nat] :
              ( collect @ ( product_prod @ nat @ nat )
              @ ^ [Uu: product_prod @ nat @ nat] :
                ? [U3: nat] :
                  ( ( Uu
                    = ( product_Pair @ nat @ nat @ U3 @ V2 ) )
                  & ( member @ ( product_prod @ nat @ nat ) @ ( product_Pair @ nat @ nat @ U3 @ V2 ) @ ( e @ Capacity @ C3 ) ) ) ) ) ) ) ).

% Graph.incoming_def
thf(fact_66_Graph_Oincoming_H__def,axiom,
    ! [Capacity: $tType] :
      ( ( linordered_idom @ Capacity )
     => ( ( incoming2 @ Capacity )
        = ( ^ [C3: ( product_prod @ nat @ nat ) > Capacity,K2: set @ nat] :
              ( collect @ ( product_prod @ nat @ nat )
              @ ^ [Uu: product_prod @ nat @ nat] :
                ? [U3: nat,V2: nat] :
                  ( ( Uu
                    = ( product_Pair @ nat @ nat @ U3 @ V2 ) )
                  & ~ ( member @ nat @ U3 @ K2 )
                  & ( member @ nat @ V2 @ K2 )
                  & ( member @ ( product_prod @ nat @ nat ) @ ( product_Pair @ nat @ nat @ U3 @ V2 ) @ ( e @ Capacity @ C3 ) ) ) ) ) ) ) ).

% Graph.incoming'_def
thf(fact_67_Graph_Ooutgoing_H__def,axiom,
    ! [Capacity: $tType] :
      ( ( linordered_idom @ Capacity )
     => ( ( outgoing2 @ Capacity )
        = ( ^ [C3: ( product_prod @ nat @ nat ) > Capacity,K2: set @ nat] :
              ( collect @ ( product_prod @ nat @ nat )
              @ ^ [Uu: product_prod @ nat @ nat] :
                ? [U3: nat,V2: nat] :
                  ( ( Uu
                    = ( product_Pair @ nat @ nat @ V2 @ U3 ) )
                  & ~ ( member @ nat @ U3 @ K2 )
                  & ( member @ nat @ V2 @ K2 )
                  & ( member @ ( product_prod @ nat @ nat ) @ ( product_Pair @ nat @ nat @ V2 @ U3 ) @ ( e @ Capacity @ C3 ) ) ) ) ) ) ) ).

% Graph.outgoing'_def
thf(fact_68_Graph_Oreachable__ss__V,axiom,
    ! [Capacity: $tType] :
      ( ( linordered_idom @ Capacity )
     => ! [S: nat,C2: ( product_prod @ nat @ nat ) > Capacity] :
          ( ( member @ nat @ S @ ( v @ Capacity @ C2 ) )
         => ( ord_less_eq @ ( set @ nat ) @ ( reachableNodes @ Capacity @ C2 @ S ) @ ( v @ Capacity @ C2 ) ) ) ) ).

% Graph.reachable_ss_V
thf(fact_69_Graph_OreachableNodes__append__edge,axiom,
    ! [Capacity: $tType] :
      ( ( linordered_idom @ Capacity )
     => ! [U: nat,C2: ( product_prod @ nat @ nat ) > Capacity,S: nat,V: nat] :
          ( ( member @ nat @ U @ ( reachableNodes @ Capacity @ C2 @ S ) )
         => ( ( member @ ( product_prod @ nat @ nat ) @ ( product_Pair @ nat @ nat @ U @ V ) @ ( e @ Capacity @ C2 ) )
           => ( member @ nat @ V @ ( reachableNodes @ Capacity @ C2 @ S ) ) ) ) ) ).

% Graph.reachableNodes_append_edge
thf(fact_70_Graph_OreachableNodes_Ocong,axiom,
    ! [Capacity: $tType] :
      ( ( linordered_idom @ Capacity )
     => ( ( reachableNodes @ Capacity )
        = ( reachableNodes @ Capacity ) ) ) ).

% Graph.reachableNodes.cong
thf(fact_71_Graph_Ooutgoing_H_Ocong,axiom,
    ! [Capacity: $tType] :
      ( ( linordered_idom @ Capacity )
     => ( ( outgoing2 @ Capacity )
        = ( outgoing2 @ Capacity ) ) ) ).

% Graph.outgoing'.cong
thf(fact_72_Graph_Oincoming_H_Ocong,axiom,
    ! [Capacity: $tType] :
      ( ( linordered_idom @ Capacity )
     => ( ( incoming2 @ Capacity )
        = ( incoming2 @ Capacity ) ) ) ).

% Graph.incoming'.cong
thf(fact_73_Graph_Oincoming_Ocong,axiom,
    ! [Capacity: $tType] :
      ( ( linordered_idom @ Capacity )
     => ( ( incoming @ Capacity )
        = ( incoming @ Capacity ) ) ) ).

% Graph.incoming.cong
thf(fact_74_pred__equals__eq2,axiom,
    ! [B: $tType,A: $tType,R2: set @ ( product_prod @ A @ B ),S3: set @ ( product_prod @ A @ B )] :
      ( ( ( ^ [X3: A,Y: B] : ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ X3 @ Y ) @ R2 ) )
        = ( ^ [X3: A,Y: B] : ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ X3 @ Y ) @ S3 ) ) )
      = ( R2 = S3 ) ) ).

% pred_equals_eq2
thf(fact_75_pred__subset__eq2,axiom,
    ! [B: $tType,A: $tType,R2: set @ ( product_prod @ A @ B ),S3: set @ ( product_prod @ A @ B )] :
      ( ( ord_less_eq @ ( A > B > $o )
        @ ^ [X3: A,Y: B] : ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ X3 @ Y ) @ R2 )
        @ ^ [X3: A,Y: B] : ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ X3 @ Y ) @ S3 ) )
      = ( ord_less_eq @ ( set @ ( product_prod @ A @ B ) ) @ R2 @ S3 ) ) ).

% pred_subset_eq2
thf(fact_76_Graph_OV__def,axiom,
    ! [Capacity: $tType] :
      ( ( linordered_idom @ Capacity )
     => ( ( v @ Capacity )
        = ( ^ [C3: ( product_prod @ nat @ nat ) > Capacity] :
              ( collect @ nat
              @ ^ [U3: nat] :
                ? [V2: nat] :
                  ( ( member @ ( product_prod @ nat @ nat ) @ ( product_Pair @ nat @ nat @ U3 @ V2 ) @ ( e @ Capacity @ C3 ) )
                  | ( member @ ( product_prod @ nat @ nat ) @ ( product_Pair @ nat @ nat @ V2 @ U3 ) @ ( e @ Capacity @ C3 ) ) ) ) ) ) ) ).

% Graph.V_def
thf(fact_77_subrelI,axiom,
    ! [B: $tType,A: $tType,R: set @ ( product_prod @ A @ B ),S: set @ ( product_prod @ A @ B )] :
      ( ! [X: A,Y2: B] :
          ( ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ X @ Y2 ) @ R )
         => ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ X @ Y2 ) @ S ) )
     => ( ord_less_eq @ ( set @ ( product_prod @ A @ B ) ) @ R @ S ) ) ).

% subrelI
thf(fact_78_Domain_Oinducts,axiom,
    ! [B: $tType,A: $tType,X4: A,R: set @ ( product_prod @ A @ B ),P: A > $o] :
      ( ( member @ A @ X4 @ ( domain @ A @ B @ R ) )
     => ( ! [A6: A,B4: B] :
            ( ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ A6 @ B4 ) @ R )
           => ( P @ A6 ) )
       => ( P @ X4 ) ) ) ).

% Domain.inducts
thf(fact_79_Domain_ODomainI,axiom,
    ! [B: $tType,A: $tType,A5: A,B5: B,R: set @ ( product_prod @ A @ B )] :
      ( ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ A5 @ B5 ) @ R )
     => ( member @ A @ A5 @ ( domain @ A @ B @ R ) ) ) ).

% Domain.DomainI
thf(fact_80_Domain_Osimps,axiom,
    ! [B: $tType,A: $tType,A5: A,R: set @ ( product_prod @ A @ B )] :
      ( ( member @ A @ A5 @ ( domain @ A @ B @ R ) )
      = ( ? [A4: A,B6: B] :
            ( ( A5 = A4 )
            & ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ A4 @ B6 ) @ R ) ) ) ) ).

% Domain.simps
thf(fact_81_Domain_Ocases,axiom,
    ! [B: $tType,A: $tType,A5: A,R: set @ ( product_prod @ A @ B )] :
      ( ( member @ A @ A5 @ ( domain @ A @ B @ R ) )
     => ~ ! [B4: B] :
            ~ ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ A5 @ B4 ) @ R ) ) ).

% Domain.cases
thf(fact_82_Domain__iff,axiom,
    ! [A: $tType,B: $tType,A5: A,R: set @ ( product_prod @ A @ B )] :
      ( ( member @ A @ A5 @ ( domain @ A @ B @ R ) )
      = ( ? [Y: B] : ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ A5 @ Y ) @ R ) ) ) ).

% Domain_iff
thf(fact_83_DomainE,axiom,
    ! [B: $tType,A: $tType,A5: A,R: set @ ( product_prod @ A @ B )] :
      ( ( member @ A @ A5 @ ( domain @ A @ B @ R ) )
     => ~ ! [B4: B] :
            ~ ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ A5 @ B4 ) @ R ) ) ).

% DomainE
thf(fact_84_Range_Oinducts,axiom,
    ! [A: $tType,B: $tType,X4: B,R: set @ ( product_prod @ A @ B ),P: B > $o] :
      ( ( member @ B @ X4 @ ( range @ A @ B @ R ) )
     => ( ! [A6: A,B4: B] :
            ( ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ A6 @ B4 ) @ R )
           => ( P @ B4 ) )
       => ( P @ X4 ) ) ) ).

% Range.inducts
thf(fact_85_Range_Ointros,axiom,
    ! [B: $tType,A: $tType,A5: A,B5: B,R: set @ ( product_prod @ A @ B )] :
      ( ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ A5 @ B5 ) @ R )
     => ( member @ B @ B5 @ ( range @ A @ B @ R ) ) ) ).

% Range.intros
thf(fact_86_Range_Osimps,axiom,
    ! [B: $tType,A: $tType,A5: B,R: set @ ( product_prod @ A @ B )] :
      ( ( member @ B @ A5 @ ( range @ A @ B @ R ) )
      = ( ? [A4: A,B6: B] :
            ( ( A5 = B6 )
            & ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ A4 @ B6 ) @ R ) ) ) ) ).

% Range.simps
thf(fact_87_Range_Ocases,axiom,
    ! [B: $tType,A: $tType,A5: B,R: set @ ( product_prod @ A @ B )] :
      ( ( member @ B @ A5 @ ( range @ A @ B @ R ) )
     => ~ ! [A6: A] :
            ~ ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ A6 @ A5 ) @ R ) ) ).

% Range.cases
thf(fact_88_Range__iff,axiom,
    ! [A: $tType,B: $tType,A5: A,R: set @ ( product_prod @ B @ A )] :
      ( ( member @ A @ A5 @ ( range @ B @ A @ R ) )
      = ( ? [Y: B] : ( member @ ( product_prod @ B @ A ) @ ( product_Pair @ B @ A @ Y @ A5 ) @ R ) ) ) ).

% Range_iff
thf(fact_89_RangeE,axiom,
    ! [A: $tType,B: $tType,B5: A,R: set @ ( product_prod @ B @ A )] :
      ( ( member @ A @ B5 @ ( range @ B @ A @ R ) )
     => ~ ! [A6: B] :
            ~ ( member @ ( product_prod @ B @ A ) @ ( product_Pair @ B @ A @ A6 @ B5 ) @ R ) ) ).

% RangeE
thf(fact_90_Graph_OreachableNodes__def,axiom,
    ! [Capacity: $tType] :
      ( ( linordered_idom @ Capacity )
     => ( ( reachableNodes @ Capacity )
        = ( ^ [C3: ( product_prod @ nat @ nat ) > Capacity,U3: nat] : ( collect @ nat @ ( connected @ Capacity @ C3 @ U3 ) ) ) ) ) ).

% Graph.reachableNodes_def
thf(fact_91_pred__subset__eq,axiom,
    ! [A: $tType,R2: set @ A,S3: set @ A] :
      ( ( ord_less_eq @ ( A > $o )
        @ ^ [X3: A] : ( member @ A @ X3 @ R2 )
        @ ^ [X3: A] : ( member @ A @ X3 @ S3 ) )
      = ( ord_less_eq @ ( set @ A ) @ R2 @ S3 ) ) ).

% pred_subset_eq
thf(fact_92_Graph_Oconnected__append__edge,axiom,
    ! [Capacity: $tType] :
      ( ( linordered_idom @ Capacity )
     => ! [C2: ( product_prod @ nat @ nat ) > Capacity,U: nat,V: nat,W: nat] :
          ( ( connected @ Capacity @ C2 @ U @ V )
         => ( ( member @ ( product_prod @ nat @ nat ) @ ( product_Pair @ nat @ nat @ V @ W ) @ ( e @ Capacity @ C2 ) )
           => ( connected @ Capacity @ C2 @ U @ W ) ) ) ) ).

% Graph.connected_append_edge
thf(fact_93_Graph_Oincoming__edges,axiom,
    ! [Capacity: $tType] :
      ( ( linordered_idom @ Capacity )
     => ! [C2: ( product_prod @ nat @ nat ) > Capacity,U: nat] : ( ord_less_eq @ ( set @ ( product_prod @ nat @ nat ) ) @ ( incoming @ Capacity @ C2 @ U ) @ ( e @ Capacity @ C2 ) ) ) ).

% Graph.incoming_edges
thf(fact_94_Graph_OisShortestPath__level__edge_I1_J,axiom,
    ! [Capacity: $tType] :
      ( ( linordered_idom @ Capacity )
     => ! [C2: ( product_prod @ nat @ nat ) > Capacity,S: nat,P4: list @ ( product_prod @ nat @ nat ),T4: nat,U: nat,V: nat] :
          ( ( isShortestPath @ Capacity @ C2 @ S @ P4 @ T4 )
         => ( ( member @ ( product_prod @ nat @ nat ) @ ( product_Pair @ nat @ nat @ U @ V ) @ ( set2 @ ( product_prod @ nat @ nat ) @ P4 ) )
           => ( connected @ Capacity @ C2 @ S @ U ) ) ) ) ).

% Graph.isShortestPath_level_edge(1)
thf(fact_95_Graph_OisShortestPath__level__edge_I2_J,axiom,
    ! [Capacity: $tType] :
      ( ( linordered_idom @ Capacity )
     => ! [C2: ( product_prod @ nat @ nat ) > Capacity,S: nat,P4: list @ ( product_prod @ nat @ nat ),T4: nat,U: nat,V: nat] :
          ( ( isShortestPath @ Capacity @ C2 @ S @ P4 @ T4 )
         => ( ( member @ ( product_prod @ nat @ nat ) @ ( product_Pair @ nat @ nat @ U @ V ) @ ( set2 @ ( product_prod @ nat @ nat ) @ P4 ) )
           => ( connected @ Capacity @ C2 @ U @ V ) ) ) ) ).

% Graph.isShortestPath_level_edge(2)
thf(fact_96_Graph_OisShortestPath__level__edge_I3_J,axiom,
    ! [Capacity: $tType] :
      ( ( linordered_idom @ Capacity )
     => ! [C2: ( product_prod @ nat @ nat ) > Capacity,S: nat,P4: list @ ( product_prod @ nat @ nat ),T4: nat,U: nat,V: nat] :
          ( ( isShortestPath @ Capacity @ C2 @ S @ P4 @ T4 )
         => ( ( member @ ( product_prod @ nat @ nat ) @ ( product_Pair @ nat @ nat @ U @ V ) @ ( set2 @ ( product_prod @ nat @ nat ) @ P4 ) )
           => ( connected @ Capacity @ C2 @ V @ T4 ) ) ) ) ).

% Graph.isShortestPath_level_edge(3)
thf(fact_97_Graph_Ooutgoing_H__edges,axiom,
    ! [Capacity: $tType] :
      ( ( linordered_idom @ Capacity )
     => ! [C2: ( product_prod @ nat @ nat ) > Capacity,U2: set @ nat] : ( ord_less_eq @ ( set @ ( product_prod @ nat @ nat ) ) @ ( outgoing2 @ Capacity @ C2 @ U2 ) @ ( e @ Capacity @ C2 ) ) ) ).

% Graph.outgoing'_edges
thf(fact_98_Graph_Oincoming_H__edges,axiom,
    ! [Capacity: $tType] :
      ( ( linordered_idom @ Capacity )
     => ! [C2: ( product_prod @ nat @ nat ) > Capacity,U2: set @ nat] : ( ord_less_eq @ ( set @ ( product_prod @ nat @ nat ) ) @ ( incoming2 @ Capacity @ C2 @ U2 ) @ ( e @ Capacity @ C2 ) ) ) ).

% Graph.incoming'_edges
thf(fact_99_Domain__unfold,axiom,
    ! [B: $tType,A: $tType] :
      ( ( domain @ A @ B )
      = ( ^ [R3: set @ ( product_prod @ A @ B )] :
            ( collect @ A
            @ ^ [X3: A] :
              ? [Y: B] : ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ X3 @ Y ) @ R3 ) ) ) ) ).

% Domain_unfold
thf(fact_100_Graph_Ofinite__incoming,axiom,
    ! [Capacity: $tType] :
      ( ( linordered_idom @ Capacity )
     => ! [C2: ( product_prod @ nat @ nat ) > Capacity,U: nat] :
          ( ( finite_finite2 @ nat @ ( v @ Capacity @ C2 ) )
         => ( finite_finite2 @ ( product_prod @ nat @ nat ) @ ( incoming @ Capacity @ C2 @ U ) ) ) ) ).

% Graph.finite_incoming
thf(fact_101_Graph_OE_Ocong,axiom,
    ! [Capacity: $tType] :
      ( ( linordered_idom @ Capacity )
     => ( ( e @ Capacity )
        = ( e @ Capacity ) ) ) ).

% Graph.E.cong
thf(fact_102_Graph_OV_Ocong,axiom,
    ! [Capacity: $tType] :
      ( ( linordered_idom @ Capacity )
     => ( ( v @ Capacity )
        = ( v @ Capacity ) ) ) ).

% Graph.V.cong
thf(fact_103_Graph_Oconnected__refl,axiom,
    ! [Capacity: $tType] :
      ( ( linordered_idom @ Capacity )
     => ! [C2: ( product_prod @ nat @ nat ) > Capacity,V: nat] : ( connected @ Capacity @ C2 @ V @ V ) ) ).

% Graph.connected_refl
thf(fact_104_Graph_Oconnected_Ocong,axiom,
    ! [Capacity: $tType] :
      ( ( linordered_idom @ Capacity )
     => ( ( connected @ Capacity )
        = ( connected @ Capacity ) ) ) ).

% Graph.connected.cong
thf(fact_105_Graph_Ofinite__outgoing_H,axiom,
    ! [Capacity: $tType] :
      ( ( linordered_idom @ Capacity )
     => ! [C2: ( product_prod @ nat @ nat ) > Capacity,U2: set @ nat] :
          ( ( finite_finite2 @ nat @ ( v @ Capacity @ C2 ) )
         => ( finite_finite2 @ ( product_prod @ nat @ nat ) @ ( outgoing2 @ Capacity @ C2 @ U2 ) ) ) ) ).

% Graph.finite_outgoing'
thf(fact_106_Graph_OisShortestPath_Ocong,axiom,
    ! [Capacity: $tType] :
      ( ( linordered_idom @ Capacity )
     => ( ( isShortestPath @ Capacity )
        = ( isShortestPath @ Capacity ) ) ) ).

% Graph.isShortestPath.cong
thf(fact_107_Graph_Ofinite__incoming_H,axiom,
    ! [Capacity: $tType] :
      ( ( linordered_idom @ Capacity )
     => ! [C2: ( product_prod @ nat @ nat ) > Capacity,U2: set @ nat] :
          ( ( finite_finite2 @ nat @ ( v @ Capacity @ C2 ) )
         => ( finite_finite2 @ ( product_prod @ nat @ nat ) @ ( incoming2 @ Capacity @ C2 @ U2 ) ) ) ) ).

% Graph.finite_incoming'
thf(fact_108_finite__list,axiom,
    ! [A: $tType,A3: set @ A] :
      ( ( finite_finite2 @ A @ A3 )
     => ? [Xs2: list @ A] :
          ( ( set2 @ A @ Xs2 )
          = A3 ) ) ).

% finite_list
thf(fact_109_subset__code_I1_J,axiom,
    ! [A: $tType,Xs: list @ A,B3: set @ A] :
      ( ( ord_less_eq @ ( set @ A ) @ ( set2 @ A @ Xs ) @ B3 )
      = ( ! [X3: A] :
            ( ( member @ A @ X3 @ ( set2 @ A @ Xs ) )
           => ( member @ A @ X3 @ B3 ) ) ) ) ).

% subset_code(1)
thf(fact_110_Graph_Oconnected__inV__iff,axiom,
    ! [Capacity: $tType] :
      ( ( linordered_idom @ Capacity )
     => ! [C2: ( product_prod @ nat @ nat ) > Capacity,U: nat,V: nat] :
          ( ( connected @ Capacity @ C2 @ U @ V )
         => ( ( member @ nat @ V @ ( v @ Capacity @ C2 ) )
            = ( member @ nat @ U @ ( v @ Capacity @ C2 ) ) ) ) ) ).

% Graph.connected_inV_iff
thf(fact_111_Graph_Oobtain__shortest__path,axiom,
    ! [Capacity: $tType] :
      ( ( linordered_idom @ Capacity )
     => ! [C2: ( product_prod @ nat @ nat ) > Capacity,U: nat,V: nat] :
          ( ( connected @ Capacity @ C2 @ U @ V )
         => ~ ! [P3: list @ ( product_prod @ nat @ nat )] :
                ~ ( isShortestPath @ Capacity @ C2 @ U @ P3 @ V ) ) ) ).

% Graph.obtain_shortest_path
thf(fact_112_Finite__Graph_Ofinite__V,axiom,
    ! [A: $tType] :
      ( ( linordered_idom @ A )
     => ! [C2: ( product_prod @ nat @ nat ) > A] :
          ( ( finite_Graph @ A @ C2 )
         => ( finite_finite2 @ nat @ ( v @ A @ C2 ) ) ) ) ).

% Finite_Graph.finite_V
thf(fact_113_Finite__Graph_Ointro,axiom,
    ! [A: $tType] :
      ( ( linordered_idom @ A )
     => ! [C2: ( product_prod @ nat @ nat ) > A] :
          ( ( finite_finite2 @ nat @ ( v @ A @ C2 ) )
         => ( finite_Graph @ A @ C2 ) ) ) ).

% Finite_Graph.intro
thf(fact_114_Finite__Graph__def,axiom,
    ! [A: $tType] :
      ( ( linordered_idom @ A )
     => ( ( finite_Graph @ A )
        = ( ^ [C3: ( product_prod @ nat @ nat ) > A] : ( finite_finite2 @ nat @ ( v @ A @ C3 ) ) ) ) ) ).

% Finite_Graph_def
thf(fact_115_Finite__Graph_Ofinite__E,axiom,
    ! [A: $tType] :
      ( ( linordered_idom @ A )
     => ! [C2: ( product_prod @ nat @ nat ) > A] :
          ( ( finite_Graph @ A @ C2 )
         => ( finite_finite2 @ ( product_prod @ nat @ nat ) @ ( e @ A @ C2 ) ) ) ) ).

% Finite_Graph.finite_E
thf(fact_116_Graph_OFinite__Graph__EI,axiom,
    ! [Capacity: $tType] :
      ( ( linordered_idom @ Capacity )
     => ! [C2: ( product_prod @ nat @ nat ) > Capacity] :
          ( ( finite_finite2 @ ( product_prod @ nat @ nat ) @ ( e @ Capacity @ C2 ) )
         => ( finite_Graph @ Capacity @ C2 ) ) ) ).

% Graph.Finite_Graph_EI
thf(fact_117_outgoing__def,axiom,
    ! [V: nat] :
      ( ( outgoing @ a @ c @ V )
      = ( collect @ ( product_prod @ nat @ nat )
        @ ^ [Uu: product_prod @ nat @ nat] :
          ? [U3: nat] :
            ( ( Uu
              = ( product_Pair @ nat @ nat @ V @ U3 ) )
            & ( member @ ( product_prod @ nat @ nat ) @ ( product_Pair @ nat @ nat @ V @ U3 ) @ ( e @ a @ c ) ) ) ) ) ).

% outgoing_def
thf(fact_118_outgoing__edges,axiom,
    ! [U: nat] : ( ord_less_eq @ ( set @ ( product_prod @ nat @ nat ) ) @ ( outgoing @ a @ c @ U ) @ ( e @ a @ c ) ) ).

% outgoing_edges
thf(fact_119_E__ss__VxV,axiom,
    ( ord_less_eq @ ( set @ ( product_prod @ nat @ nat ) ) @ ( e @ a @ c )
    @ ( product_Sigma @ nat @ nat @ ( v @ a @ c )
      @ ^ [Uu: nat] : ( v @ a @ c ) ) ) ).

% E_ss_VxV
thf(fact_120_connected__edgeRtc,axiom,
    ! [U: nat,V: nat] :
      ( ( connected @ a @ c @ U @ V )
      = ( member @ ( product_prod @ nat @ nat ) @ ( product_Pair @ nat @ nat @ U @ V ) @ ( transitive_rtrancl @ nat @ ( e @ a @ c ) ) ) ) ).

% connected_edgeRtc
thf(fact_121_isSPath__no__selfloop,axiom,
    ! [U: nat,P4: list @ ( product_prod @ nat @ nat ),V: nat,U1: nat] :
      ( ( isSimplePath @ a @ c @ U @ P4 @ V )
     => ~ ( member @ ( product_prod @ nat @ nat ) @ ( product_Pair @ nat @ nat @ U1 @ U1 ) @ ( set2 @ ( product_prod @ nat @ nat ) @ P4 ) ) ) ).

% isSPath_no_selfloop
thf(fact_122_isSPath__sg__incoming,axiom,
    ! [U: nat,P4: list @ ( product_prod @ nat @ nat ),V: nat,U1: nat,V1: nat,U22: nat] :
      ( ( isSimplePath @ a @ c @ U @ P4 @ V )
     => ( ( member @ ( product_prod @ nat @ nat ) @ ( product_Pair @ nat @ nat @ U1 @ V1 ) @ ( set2 @ ( product_prod @ nat @ nat ) @ P4 ) )
       => ( ( U1 != U22 )
         => ~ ( member @ ( product_prod @ nat @ nat ) @ ( product_Pair @ nat @ nat @ U22 @ V1 ) @ ( set2 @ ( product_prod @ nat @ nat ) @ P4 ) ) ) ) ) ).

% isSPath_sg_incoming
thf(fact_123_isSPath__sg__outgoing,axiom,
    ! [U: nat,P4: list @ ( product_prod @ nat @ nat ),V: nat,U1: nat,V1: nat,V22: nat] :
      ( ( isSimplePath @ a @ c @ U @ P4 @ V )
     => ( ( member @ ( product_prod @ nat @ nat ) @ ( product_Pair @ nat @ nat @ U1 @ V1 ) @ ( set2 @ ( product_prod @ nat @ nat ) @ P4 ) )
       => ( ( V1 != V22 )
         => ~ ( member @ ( product_prod @ nat @ nat ) @ ( product_Pair @ nat @ nat @ U1 @ V22 ) @ ( set2 @ ( product_prod @ nat @ nat ) @ P4 ) ) ) ) ) ).

% isSPath_sg_outgoing
thf(fact_124_reachableNodes__E__closed,axiom,
    ! [S: nat] : ( ord_less_eq @ ( set @ nat ) @ ( image @ nat @ nat @ ( e @ a @ c ) @ ( reachableNodes @ a @ c @ S ) ) @ ( reachableNodes @ a @ c @ S ) ) ).

% reachableNodes_E_closed
thf(fact_125_shortestPath__is__simple,axiom,
    ! [S: nat,P4: list @ ( product_prod @ nat @ nat ),T4: nat] :
      ( ( isShortestPath @ a @ c @ S @ P4 @ T4 )
     => ( isSimplePath @ a @ c @ S @ P4 @ T4 ) ) ).

% shortestPath_is_simple
thf(fact_126_ImageI,axiom,
    ! [B: $tType,A: $tType,A5: A,B5: B,R: set @ ( product_prod @ A @ B ),A3: set @ A] :
      ( ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ A5 @ B5 ) @ R )
     => ( ( member @ A @ A5 @ A3 )
       => ( member @ B @ B5 @ ( image @ A @ B @ R @ A3 ) ) ) ) ).

% ImageI
thf(fact_127_finite__SigmaI,axiom,
    ! [B: $tType,A: $tType,A3: set @ A,B3: A > ( set @ B )] :
      ( ( finite_finite2 @ A @ A3 )
     => ( ! [A6: A] :
            ( ( member @ A @ A6 @ A3 )
           => ( finite_finite2 @ B @ ( B3 @ A6 ) ) )
       => ( finite_finite2 @ ( product_prod @ A @ B ) @ ( product_Sigma @ A @ B @ A3 @ B3 ) ) ) ) ).

% finite_SigmaI
thf(fact_128_adjacent__nodes__finite,axiom,
    ! [U: nat] : ( finite_finite2 @ nat @ ( adjacent_nodes @ a @ c @ U ) ) ).

% adjacent_nodes_finite
thf(fact_129_finite__outgoing,axiom,
    ! [U: nat] :
      ( ( finite_finite2 @ nat @ ( v @ a @ c ) )
     => ( finite_finite2 @ ( product_prod @ nat @ nat ) @ ( outgoing @ a @ c @ U ) ) ) ).

% finite_outgoing
thf(fact_130_Graph_Oadjacent__nodes_Ocong,axiom,
    ! [Capacity: $tType] :
      ( ( linordered_idom @ Capacity )
     => ( ( adjacent_nodes @ Capacity )
        = ( adjacent_nodes @ Capacity ) ) ) ).

% Graph.adjacent_nodes.cong
thf(fact_131_Graph_OisSimplePath_Ocong,axiom,
    ! [Capacity: $tType] :
      ( ( linordered_idom @ Capacity )
     => ( ( isSimplePath @ Capacity )
        = ( isSimplePath @ Capacity ) ) ) ).

% Graph.isSimplePath.cong
thf(fact_132_Graph_Ooutgoing_Ocong,axiom,
    ! [Capacity: $tType] :
      ( ( linordered_idom @ Capacity )
     => ( ( outgoing @ Capacity )
        = ( outgoing @ Capacity ) ) ) ).

% Graph.outgoing.cong
thf(fact_133_rev__ImageI,axiom,
    ! [B: $tType,A: $tType,A5: A,A3: set @ A,B5: B,R: set @ ( product_prod @ A @ B )] :
      ( ( member @ A @ A5 @ A3 )
     => ( ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ A5 @ B5 ) @ R )
       => ( member @ B @ B5 @ ( image @ A @ B @ R @ A3 ) ) ) ) ).

% rev_ImageI
thf(fact_134_Image__iff,axiom,
    ! [A: $tType,B: $tType,B5: A,R: set @ ( product_prod @ B @ A ),A3: set @ B] :
      ( ( member @ A @ B5 @ ( image @ B @ A @ R @ A3 ) )
      = ( ? [X3: B] :
            ( ( member @ B @ X3 @ A3 )
            & ( member @ ( product_prod @ B @ A ) @ ( product_Pair @ B @ A @ X3 @ B5 ) @ R ) ) ) ) ).

% Image_iff
thf(fact_135_ImageE,axiom,
    ! [A: $tType,B: $tType,B5: A,R: set @ ( product_prod @ B @ A ),A3: set @ B] :
      ( ( member @ A @ B5 @ ( image @ B @ A @ R @ A3 ) )
     => ~ ! [X: B] :
            ( ( member @ ( product_prod @ B @ A ) @ ( product_Pair @ B @ A @ X @ B5 ) @ R )
           => ~ ( member @ B @ X @ A3 ) ) ) ).

% ImageE
thf(fact_136_Image__subset,axiom,
    ! [A: $tType,B: $tType,R: set @ ( product_prod @ A @ B ),A3: set @ A,B3: set @ B,C4: set @ A] :
      ( ( ord_less_eq @ ( set @ ( product_prod @ A @ B ) ) @ R
        @ ( product_Sigma @ A @ B @ A3
          @ ^ [Uu: A] : B3 ) )
     => ( ord_less_eq @ ( set @ B ) @ ( image @ A @ B @ R @ C4 ) @ B3 ) ) ).

% Image_subset
thf(fact_137_Graph_OshortestPath__is__simple,axiom,
    ! [Capacity: $tType] :
      ( ( linordered_idom @ Capacity )
     => ! [C2: ( product_prod @ nat @ nat ) > Capacity,S: nat,P4: list @ ( product_prod @ nat @ nat ),T4: nat] :
          ( ( isShortestPath @ Capacity @ C2 @ S @ P4 @ T4 )
         => ( isSimplePath @ Capacity @ C2 @ S @ P4 @ T4 ) ) ) ).

% Graph.shortestPath_is_simple
thf(fact_138_Image__mono,axiom,
    ! [B: $tType,A: $tType,R4: set @ ( product_prod @ A @ B ),R: set @ ( product_prod @ A @ B ),A7: set @ A,A3: set @ A] :
      ( ( ord_less_eq @ ( set @ ( product_prod @ A @ B ) ) @ R4 @ R )
     => ( ( ord_less_eq @ ( set @ A ) @ A7 @ A3 )
       => ( ord_less_eq @ ( set @ B ) @ ( image @ A @ B @ R4 @ A7 ) @ ( image @ A @ B @ R @ A3 ) ) ) ) ).

% Image_mono
thf(fact_139_Relation_Ofinite__Image,axiom,
    ! [B: $tType,A: $tType,R2: set @ ( product_prod @ A @ B ),A3: set @ A] :
      ( ( finite_finite2 @ ( product_prod @ A @ B ) @ R2 )
     => ( finite_finite2 @ B @ ( image @ A @ B @ R2 @ A3 ) ) ) ).

% Relation.finite_Image
thf(fact_140_Graph_OreachableNodes__E__closed,axiom,
    ! [Capacity: $tType] :
      ( ( linordered_idom @ Capacity )
     => ! [C2: ( product_prod @ nat @ nat ) > Capacity,S: nat] : ( ord_less_eq @ ( set @ nat ) @ ( image @ nat @ nat @ ( e @ Capacity @ C2 ) @ ( reachableNodes @ Capacity @ C2 @ S ) ) @ ( reachableNodes @ Capacity @ C2 @ S ) ) ) ).

% Graph.reachableNodes_E_closed
thf(fact_141_finite__cartesian__product,axiom,
    ! [B: $tType,A: $tType,A3: set @ A,B3: set @ B] :
      ( ( finite_finite2 @ A @ A3 )
     => ( ( finite_finite2 @ B @ B3 )
       => ( finite_finite2 @ ( product_prod @ A @ B )
          @ ( product_Sigma @ A @ B @ A3
            @ ^ [Uu: A] : B3 ) ) ) ) ).

% finite_cartesian_product
thf(fact_142_Graph_OisSPath__sg__outgoing,axiom,
    ! [Capacity: $tType] :
      ( ( linordered_idom @ Capacity )
     => ! [C2: ( product_prod @ nat @ nat ) > Capacity,U: nat,P4: list @ ( product_prod @ nat @ nat ),V: nat,U1: nat,V1: nat,V22: nat] :
          ( ( isSimplePath @ Capacity @ C2 @ U @ P4 @ V )
         => ( ( member @ ( product_prod @ nat @ nat ) @ ( product_Pair @ nat @ nat @ U1 @ V1 ) @ ( set2 @ ( product_prod @ nat @ nat ) @ P4 ) )
           => ( ( V1 != V22 )
             => ~ ( member @ ( product_prod @ nat @ nat ) @ ( product_Pair @ nat @ nat @ U1 @ V22 ) @ ( set2 @ ( product_prod @ nat @ nat ) @ P4 ) ) ) ) ) ) ).

% Graph.isSPath_sg_outgoing
thf(fact_143_Graph_OisSPath__sg__incoming,axiom,
    ! [Capacity: $tType] :
      ( ( linordered_idom @ Capacity )
     => ! [C2: ( product_prod @ nat @ nat ) > Capacity,U: nat,P4: list @ ( product_prod @ nat @ nat ),V: nat,U1: nat,V1: nat,U22: nat] :
          ( ( isSimplePath @ Capacity @ C2 @ U @ P4 @ V )
         => ( ( member @ ( product_prod @ nat @ nat ) @ ( product_Pair @ nat @ nat @ U1 @ V1 ) @ ( set2 @ ( product_prod @ nat @ nat ) @ P4 ) )
           => ( ( U1 != U22 )
             => ~ ( member @ ( product_prod @ nat @ nat ) @ ( product_Pair @ nat @ nat @ U22 @ V1 ) @ ( set2 @ ( product_prod @ nat @ nat ) @ P4 ) ) ) ) ) ) ).

% Graph.isSPath_sg_incoming
thf(fact_144_Graph_OisSPath__no__selfloop,axiom,
    ! [Capacity: $tType] :
      ( ( linordered_idom @ Capacity )
     => ! [C2: ( product_prod @ nat @ nat ) > Capacity,U: nat,P4: list @ ( product_prod @ nat @ nat ),V: nat,U1: nat] :
          ( ( isSimplePath @ Capacity @ C2 @ U @ P4 @ V )
         => ~ ( member @ ( product_prod @ nat @ nat ) @ ( product_Pair @ nat @ nat @ U1 @ U1 ) @ ( set2 @ ( product_prod @ nat @ nat ) @ P4 ) ) ) ) ).

% Graph.isSPath_no_selfloop
thf(fact_145_Graph_Oadjacent__nodes__ss__V,axiom,
    ! [Capacity: $tType] :
      ( ( linordered_idom @ Capacity )
     => ! [C2: ( product_prod @ nat @ nat ) > Capacity,U: nat] : ( ord_less_eq @ ( set @ nat ) @ ( adjacent_nodes @ Capacity @ C2 @ U ) @ ( v @ Capacity @ C2 ) ) ) ).

% Graph.adjacent_nodes_ss_V
thf(fact_146_Graph_Ooutgoing__edges,axiom,
    ! [Capacity: $tType] :
      ( ( linordered_idom @ Capacity )
     => ! [C2: ( product_prod @ nat @ nat ) > Capacity,U: nat] : ( ord_less_eq @ ( set @ ( product_prod @ nat @ nat ) ) @ ( outgoing @ Capacity @ C2 @ U ) @ ( e @ Capacity @ C2 ) ) ) ).

% Graph.outgoing_edges
thf(fact_147_Graph_Ooutgoing__def,axiom,
    ! [Capacity: $tType] :
      ( ( linordered_idom @ Capacity )
     => ( ( outgoing @ Capacity )
        = ( ^ [C3: ( product_prod @ nat @ nat ) > Capacity,V2: nat] :
              ( collect @ ( product_prod @ nat @ nat )
              @ ^ [Uu: product_prod @ nat @ nat] :
                ? [U3: nat] :
                  ( ( Uu
                    = ( product_Pair @ nat @ nat @ V2 @ U3 ) )
                  & ( member @ ( product_prod @ nat @ nat ) @ ( product_Pair @ nat @ nat @ V2 @ U3 ) @ ( e @ Capacity @ C3 ) ) ) ) ) ) ) ).

% Graph.outgoing_def
thf(fact_148_Graph_Oconnected__edgeRtc,axiom,
    ! [Capacity: $tType] :
      ( ( linordered_idom @ Capacity )
     => ( ( connected @ Capacity )
        = ( ^ [C3: ( product_prod @ nat @ nat ) > Capacity,U3: nat,V2: nat] : ( member @ ( product_prod @ nat @ nat ) @ ( product_Pair @ nat @ nat @ U3 @ V2 ) @ ( transitive_rtrancl @ nat @ ( e @ Capacity @ C3 ) ) ) ) ) ) ).

% Graph.connected_edgeRtc
thf(fact_149_Graph_OE__ss__VxV,axiom,
    ! [Capacity: $tType] :
      ( ( linordered_idom @ Capacity )
     => ! [C2: ( product_prod @ nat @ nat ) > Capacity] :
          ( ord_less_eq @ ( set @ ( product_prod @ nat @ nat ) ) @ ( e @ Capacity @ C2 )
          @ ( product_Sigma @ nat @ nat @ ( v @ Capacity @ C2 )
            @ ^ [Uu: nat] : ( v @ Capacity @ C2 ) ) ) ) ).

% Graph.E_ss_VxV
thf(fact_150_Graph_Ofinite__outgoing,axiom,
    ! [Capacity: $tType] :
      ( ( linordered_idom @ Capacity )
     => ! [C2: ( product_prod @ nat @ nat ) > Capacity,U: nat] :
          ( ( finite_finite2 @ nat @ ( v @ Capacity @ C2 ) )
         => ( finite_finite2 @ ( product_prod @ nat @ nat ) @ ( outgoing @ Capacity @ C2 @ U ) ) ) ) ).

% Graph.finite_outgoing
thf(fact_151_Finite__Graph_Oadjacent__nodes__finite,axiom,
    ! [A: $tType] :
      ( ( linordered_idom @ A )
     => ! [C2: ( product_prod @ nat @ nat ) > A,U: nat] :
          ( ( finite_Graph @ A @ C2 )
         => ( finite_finite2 @ nat @ ( adjacent_nodes @ A @ C2 @ U ) ) ) ) ).

% Finite_Graph.adjacent_nodes_finite
thf(fact_152_isSPath__nt__parallel,axiom,
    ! [S: nat,P4: list @ ( product_prod @ nat @ nat ),T4: nat,E2: product_prod @ nat @ nat] :
      ( ( isSimplePath @ a @ c @ S @ P4 @ T4 )
     => ( ( member @ ( product_prod @ nat @ nat ) @ E2 @ ( set2 @ ( product_prod @ nat @ nat ) @ P4 ) )
       => ~ ( member @ ( product_prod @ nat @ nat ) @ ( product_swap @ nat @ nat @ E2 ) @ ( set2 @ ( product_prod @ nat @ nat ) @ P4 ) ) ) ) ).

% isSPath_nt_parallel
thf(fact_153_mem__Sigma__iff,axiom,
    ! [B: $tType,A: $tType,A5: A,B5: B,A3: set @ A,B3: A > ( set @ B )] :
      ( ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ A5 @ B5 ) @ ( product_Sigma @ A @ B @ A3 @ B3 ) )
      = ( ( member @ A @ A5 @ A3 )
        & ( member @ B @ B5 @ ( B3 @ A5 ) ) ) ) ).

% mem_Sigma_iff
thf(fact_154_SigmaI,axiom,
    ! [B: $tType,A: $tType,A5: A,A3: set @ A,B5: B,B3: A > ( set @ B )] :
      ( ( member @ A @ A5 @ A3 )
     => ( ( member @ B @ B5 @ ( B3 @ A5 ) )
       => ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ A5 @ B5 ) @ ( product_Sigma @ A @ B @ A3 @ B3 ) ) ) ) ).

% SigmaI
thf(fact_155_trancl__subset__Sigma__aux,axiom,
    ! [A: $tType,A5: A,B5: A,R: set @ ( product_prod @ A @ A ),A3: set @ A] :
      ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ A5 @ B5 ) @ ( transitive_rtrancl @ A @ R ) )
     => ( ( ord_less_eq @ ( set @ ( product_prod @ A @ A ) ) @ R
          @ ( product_Sigma @ A @ A @ A3
            @ ^ [Uu: A] : A3 ) )
       => ( ( A5 = B5 )
          | ( member @ A @ A5 @ A3 ) ) ) ) ).

% trancl_subset_Sigma_aux
thf(fact_156_old_Oprod_Oinject,axiom,
    ! [A: $tType,B: $tType,A5: A,B5: B,A8: A,B7: B] :
      ( ( ( product_Pair @ A @ B @ A5 @ B5 )
        = ( product_Pair @ A @ B @ A8 @ B7 ) )
      = ( ( A5 = A8 )
        & ( B5 = B7 ) ) ) ).

% old.prod.inject
thf(fact_157_prod_Oinject,axiom,
    ! [A: $tType,B: $tType,X1: A,X22: B,Y1: A,Y22: B] :
      ( ( ( product_Pair @ A @ B @ X1 @ X22 )
        = ( product_Pair @ A @ B @ Y1 @ Y22 ) )
      = ( ( X1 = Y1 )
        & ( X22 = Y22 ) ) ) ).

% prod.inject
thf(fact_158_r__into__rtrancl,axiom,
    ! [A: $tType,P4: product_prod @ A @ A,R: set @ ( product_prod @ A @ A )] :
      ( ( member @ ( product_prod @ A @ A ) @ P4 @ R )
     => ( member @ ( product_prod @ A @ A ) @ P4 @ ( transitive_rtrancl @ A @ R ) ) ) ).

% r_into_rtrancl
thf(fact_159_rtrancl__idemp,axiom,
    ! [A: $tType,R: set @ ( product_prod @ A @ A )] :
      ( ( transitive_rtrancl @ A @ ( transitive_rtrancl @ A @ R ) )
      = ( transitive_rtrancl @ A @ R ) ) ).

% rtrancl_idemp
thf(fact_160_swap__swap,axiom,
    ! [B: $tType,A: $tType,P4: product_prod @ A @ B] :
      ( ( product_swap @ B @ A @ ( product_swap @ A @ B @ P4 ) )
      = P4 ) ).

% swap_swap
thf(fact_161_swap__simp,axiom,
    ! [A: $tType,B: $tType,X4: B,Y3: A] :
      ( ( product_swap @ B @ A @ ( product_Pair @ B @ A @ X4 @ Y3 ) )
      = ( product_Pair @ A @ B @ Y3 @ X4 ) ) ).

% swap_simp
thf(fact_162_converse__rtrancl__induct2,axiom,
    ! [A: $tType,B: $tType,Ax: A,Ay: B,Bx: A,By: B,R: set @ ( product_prod @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) ),P: A > B > $o] :
      ( ( member @ ( product_prod @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) ) @ ( product_Pair @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ Ax @ Ay ) @ ( product_Pair @ A @ B @ Bx @ By ) ) @ ( transitive_rtrancl @ ( product_prod @ A @ B ) @ R ) )
     => ( ( P @ Bx @ By )
       => ( ! [A6: A,B4: B,Aa: A,Ba: B] :
              ( ( member @ ( product_prod @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) ) @ ( product_Pair @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ A6 @ B4 ) @ ( product_Pair @ A @ B @ Aa @ Ba ) ) @ R )
             => ( ( member @ ( product_prod @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) ) @ ( product_Pair @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ Aa @ Ba ) @ ( product_Pair @ A @ B @ Bx @ By ) ) @ ( transitive_rtrancl @ ( product_prod @ A @ B ) @ R ) )
               => ( ( P @ Aa @ Ba )
                 => ( P @ A6 @ B4 ) ) ) )
         => ( P @ Ax @ Ay ) ) ) ) ).

% converse_rtrancl_induct2
thf(fact_163_converse__rtranclE2,axiom,
    ! [B: $tType,A: $tType,Xa2: A,Xb: B,Za: A,Zb: B,R: set @ ( product_prod @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) )] :
      ( ( member @ ( product_prod @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) ) @ ( product_Pair @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ Xa2 @ Xb ) @ ( product_Pair @ A @ B @ Za @ Zb ) ) @ ( transitive_rtrancl @ ( product_prod @ A @ B ) @ R ) )
     => ( ( ( product_Pair @ A @ B @ Xa2 @ Xb )
         != ( product_Pair @ A @ B @ Za @ Zb ) )
       => ~ ! [A6: A,B4: B] :
              ( ( member @ ( product_prod @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) ) @ ( product_Pair @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ Xa2 @ Xb ) @ ( product_Pair @ A @ B @ A6 @ B4 ) ) @ R )
             => ~ ( member @ ( product_prod @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) ) @ ( product_Pair @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ A6 @ B4 ) @ ( product_Pair @ A @ B @ Za @ Zb ) ) @ ( transitive_rtrancl @ ( product_prod @ A @ B ) @ R ) ) ) ) ) ).

% converse_rtranclE2
thf(fact_164_rtrancl__induct2,axiom,
    ! [A: $tType,B: $tType,Ax: A,Ay: B,Bx: A,By: B,R: set @ ( product_prod @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) ),P: A > B > $o] :
      ( ( member @ ( product_prod @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) ) @ ( product_Pair @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ Ax @ Ay ) @ ( product_Pair @ A @ B @ Bx @ By ) ) @ ( transitive_rtrancl @ ( product_prod @ A @ B ) @ R ) )
     => ( ( P @ Ax @ Ay )
       => ( ! [A6: A,B4: B,Aa: A,Ba: B] :
              ( ( member @ ( product_prod @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) ) @ ( product_Pair @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ Ax @ Ay ) @ ( product_Pair @ A @ B @ A6 @ B4 ) ) @ ( transitive_rtrancl @ ( product_prod @ A @ B ) @ R ) )
             => ( ( member @ ( product_prod @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) ) @ ( product_Pair @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ A6 @ B4 ) @ ( product_Pair @ A @ B @ Aa @ Ba ) ) @ R )
               => ( ( P @ A6 @ B4 )
                 => ( P @ Aa @ Ba ) ) ) )
         => ( P @ Bx @ By ) ) ) ) ).

% rtrancl_induct2
thf(fact_165_old_Oprod_Oinducts,axiom,
    ! [B: $tType,A: $tType,P: ( product_prod @ A @ B ) > $o,Prod: product_prod @ A @ B] :
      ( ! [A6: A,B4: B] : ( P @ ( product_Pair @ A @ B @ A6 @ B4 ) )
     => ( P @ Prod ) ) ).

% old.prod.inducts
thf(fact_166_old_Oprod_Oexhaust,axiom,
    ! [A: $tType,B: $tType,Y3: product_prod @ A @ B] :
      ~ ! [A6: A,B4: B] :
          ( Y3
         != ( product_Pair @ A @ B @ A6 @ B4 ) ) ).

% old.prod.exhaust
thf(fact_167_prod__induct7,axiom,
    ! [G2: $tType,F3: $tType,E3: $tType,D: $tType,C: $tType,B: $tType,A: $tType,P: ( product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E3 @ ( product_prod @ F3 @ G2 ) ) ) ) ) ) > $o,X4: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E3 @ ( product_prod @ F3 @ G2 ) ) ) ) )] :
      ( ! [A6: A,B4: B,C5: C,D2: D,E4: E3,F: F3,G3: G2] : ( P @ ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E3 @ ( product_prod @ F3 @ G2 ) ) ) ) ) @ A6 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E3 @ ( product_prod @ F3 @ G2 ) ) ) ) @ B4 @ ( product_Pair @ C @ ( product_prod @ D @ ( product_prod @ E3 @ ( product_prod @ F3 @ G2 ) ) ) @ C5 @ ( product_Pair @ D @ ( product_prod @ E3 @ ( product_prod @ F3 @ G2 ) ) @ D2 @ ( product_Pair @ E3 @ ( product_prod @ F3 @ G2 ) @ E4 @ ( product_Pair @ F3 @ G2 @ F @ G3 ) ) ) ) ) ) )
     => ( P @ X4 ) ) ).

% prod_induct7
thf(fact_168_prod__induct6,axiom,
    ! [F3: $tType,E3: $tType,D: $tType,C: $tType,B: $tType,A: $tType,P: ( product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E3 @ F3 ) ) ) ) ) > $o,X4: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E3 @ F3 ) ) ) )] :
      ( ! [A6: A,B4: B,C5: C,D2: D,E4: E3,F: F3] : ( P @ ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E3 @ F3 ) ) ) ) @ A6 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E3 @ F3 ) ) ) @ B4 @ ( product_Pair @ C @ ( product_prod @ D @ ( product_prod @ E3 @ F3 ) ) @ C5 @ ( product_Pair @ D @ ( product_prod @ E3 @ F3 ) @ D2 @ ( product_Pair @ E3 @ F3 @ E4 @ F ) ) ) ) ) )
     => ( P @ X4 ) ) ).

% prod_induct6
thf(fact_169_prod__induct5,axiom,
    ! [E3: $tType,D: $tType,C: $tType,B: $tType,A: $tType,P: ( product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ E3 ) ) ) ) > $o,X4: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ E3 ) ) )] :
      ( ! [A6: A,B4: B,C5: C,D2: D,E4: E3] : ( P @ ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ E3 ) ) ) @ A6 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ E3 ) ) @ B4 @ ( product_Pair @ C @ ( product_prod @ D @ E3 ) @ C5 @ ( product_Pair @ D @ E3 @ D2 @ E4 ) ) ) ) )
     => ( P @ X4 ) ) ).

% prod_induct5
thf(fact_170_prod__induct4,axiom,
    ! [D: $tType,C: $tType,B: $tType,A: $tType,P: ( product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ D ) ) ) > $o,X4: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ D ) )] :
      ( ! [A6: A,B4: B,C5: C,D2: D] : ( P @ ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ D ) ) @ A6 @ ( product_Pair @ B @ ( product_prod @ C @ D ) @ B4 @ ( product_Pair @ C @ D @ C5 @ D2 ) ) ) )
     => ( P @ X4 ) ) ).

% prod_induct4
thf(fact_171_prod__induct3,axiom,
    ! [C: $tType,B: $tType,A: $tType,P: ( product_prod @ A @ ( product_prod @ B @ C ) ) > $o,X4: product_prod @ A @ ( product_prod @ B @ C )] :
      ( ! [A6: A,B4: B,C5: C] : ( P @ ( product_Pair @ A @ ( product_prod @ B @ C ) @ A6 @ ( product_Pair @ B @ C @ B4 @ C5 ) ) )
     => ( P @ X4 ) ) ).

% prod_induct3
thf(fact_172_prod__cases7,axiom,
    ! [A: $tType,B: $tType,C: $tType,D: $tType,E3: $tType,F3: $tType,G2: $tType,Y3: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E3 @ ( product_prod @ F3 @ G2 ) ) ) ) )] :
      ~ ! [A6: A,B4: B,C5: C,D2: D,E4: E3,F: F3,G3: G2] :
          ( Y3
         != ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E3 @ ( product_prod @ F3 @ G2 ) ) ) ) ) @ A6 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E3 @ ( product_prod @ F3 @ G2 ) ) ) ) @ B4 @ ( product_Pair @ C @ ( product_prod @ D @ ( product_prod @ E3 @ ( product_prod @ F3 @ G2 ) ) ) @ C5 @ ( product_Pair @ D @ ( product_prod @ E3 @ ( product_prod @ F3 @ G2 ) ) @ D2 @ ( product_Pair @ E3 @ ( product_prod @ F3 @ G2 ) @ E4 @ ( product_Pair @ F3 @ G2 @ F @ G3 ) ) ) ) ) ) ) ).

% prod_cases7
thf(fact_173_prod__cases6,axiom,
    ! [A: $tType,B: $tType,C: $tType,D: $tType,E3: $tType,F3: $tType,Y3: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E3 @ F3 ) ) ) )] :
      ~ ! [A6: A,B4: B,C5: C,D2: D,E4: E3,F: F3] :
          ( Y3
         != ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E3 @ F3 ) ) ) ) @ A6 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E3 @ F3 ) ) ) @ B4 @ ( product_Pair @ C @ ( product_prod @ D @ ( product_prod @ E3 @ F3 ) ) @ C5 @ ( product_Pair @ D @ ( product_prod @ E3 @ F3 ) @ D2 @ ( product_Pair @ E3 @ F3 @ E4 @ F ) ) ) ) ) ) ).

% prod_cases6
thf(fact_174_prod__cases5,axiom,
    ! [A: $tType,B: $tType,C: $tType,D: $tType,E3: $tType,Y3: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ E3 ) ) )] :
      ~ ! [A6: A,B4: B,C5: C,D2: D,E4: E3] :
          ( Y3
         != ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ E3 ) ) ) @ A6 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ E3 ) ) @ B4 @ ( product_Pair @ C @ ( product_prod @ D @ E3 ) @ C5 @ ( product_Pair @ D @ E3 @ D2 @ E4 ) ) ) ) ) ).

% prod_cases5
thf(fact_175_prod__cases4,axiom,
    ! [A: $tType,B: $tType,C: $tType,D: $tType,Y3: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ D ) )] :
      ~ ! [A6: A,B4: B,C5: C,D2: D] :
          ( Y3
         != ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ D ) ) @ A6 @ ( product_Pair @ B @ ( product_prod @ C @ D ) @ B4 @ ( product_Pair @ C @ D @ C5 @ D2 ) ) ) ) ).

% prod_cases4
thf(fact_176_prod__cases3,axiom,
    ! [A: $tType,B: $tType,C: $tType,Y3: product_prod @ A @ ( product_prod @ B @ C )] :
      ~ ! [A6: A,B4: B,C5: C] :
          ( Y3
         != ( product_Pair @ A @ ( product_prod @ B @ C ) @ A6 @ ( product_Pair @ B @ C @ B4 @ C5 ) ) ) ).

% prod_cases3
thf(fact_177_Pair__inject,axiom,
    ! [A: $tType,B: $tType,A5: A,B5: B,A8: A,B7: B] :
      ( ( ( product_Pair @ A @ B @ A5 @ B5 )
        = ( product_Pair @ A @ B @ A8 @ B7 ) )
     => ~ ( ( A5 = A8 )
         => ( B5 != B7 ) ) ) ).

% Pair_inject
thf(fact_178_prod__cases,axiom,
    ! [B: $tType,A: $tType,P: ( product_prod @ A @ B ) > $o,P4: product_prod @ A @ B] :
      ( ! [A6: A,B4: B] : ( P @ ( product_Pair @ A @ B @ A6 @ B4 ) )
     => ( P @ P4 ) ) ).

% prod_cases
thf(fact_179_surj__pair,axiom,
    ! [A: $tType,B: $tType,P4: product_prod @ A @ B] :
    ? [X: A,Y2: B] :
      ( P4
      = ( product_Pair @ A @ B @ X @ Y2 ) ) ).

% surj_pair
thf(fact_180_Graph_OisSPath__nt__parallel,axiom,
    ! [Capacity: $tType] :
      ( ( linordered_idom @ Capacity )
     => ! [C2: ( product_prod @ nat @ nat ) > Capacity,S: nat,P4: list @ ( product_prod @ nat @ nat ),T4: nat,E2: product_prod @ nat @ nat] :
          ( ( isSimplePath @ Capacity @ C2 @ S @ P4 @ T4 )
         => ( ( member @ ( product_prod @ nat @ nat ) @ E2 @ ( set2 @ ( product_prod @ nat @ nat ) @ P4 ) )
           => ~ ( member @ ( product_prod @ nat @ nat ) @ ( product_swap @ nat @ nat @ E2 ) @ ( set2 @ ( product_prod @ nat @ nat ) @ P4 ) ) ) ) ) ).

% Graph.isSPath_nt_parallel
thf(fact_181_Sigma__cong,axiom,
    ! [B: $tType,A: $tType,A3: set @ A,B3: set @ A,C4: A > ( set @ B ),D3: A > ( set @ B )] :
      ( ( A3 = B3 )
     => ( ! [X: A] :
            ( ( member @ A @ X @ B3 )
           => ( ( C4 @ X )
              = ( D3 @ X ) ) )
       => ( ( product_Sigma @ A @ B @ A3 @ C4 )
          = ( product_Sigma @ A @ B @ B3 @ D3 ) ) ) ) ).

% Sigma_cong
thf(fact_182_Times__eq__cancel2,axiom,
    ! [A: $tType,B: $tType,X4: A,C4: set @ A,A3: set @ B,B3: set @ B] :
      ( ( member @ A @ X4 @ C4 )
     => ( ( ( product_Sigma @ B @ A @ A3
            @ ^ [Uu: B] : C4 )
          = ( product_Sigma @ B @ A @ B3
            @ ^ [Uu: B] : C4 ) )
        = ( A3 = B3 ) ) ) ).

% Times_eq_cancel2
thf(fact_183_SigmaE,axiom,
    ! [A: $tType,B: $tType,C2: product_prod @ A @ B,A3: set @ A,B3: A > ( set @ B )] :
      ( ( member @ ( product_prod @ A @ B ) @ C2 @ ( product_Sigma @ A @ B @ A3 @ B3 ) )
     => ~ ! [X: A] :
            ( ( member @ A @ X @ A3 )
           => ! [Y2: B] :
                ( ( member @ B @ Y2 @ ( B3 @ X ) )
               => ( C2
                 != ( product_Pair @ A @ B @ X @ Y2 ) ) ) ) ) ).

% SigmaE
thf(fact_184_SigmaD1,axiom,
    ! [B: $tType,A: $tType,A5: A,B5: B,A3: set @ A,B3: A > ( set @ B )] :
      ( ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ A5 @ B5 ) @ ( product_Sigma @ A @ B @ A3 @ B3 ) )
     => ( member @ A @ A5 @ A3 ) ) ).

% SigmaD1
thf(fact_185_SigmaD2,axiom,
    ! [B: $tType,A: $tType,A5: A,B5: B,A3: set @ A,B3: A > ( set @ B )] :
      ( ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ A5 @ B5 ) @ ( product_Sigma @ A @ B @ A3 @ B3 ) )
     => ( member @ B @ B5 @ ( B3 @ A5 ) ) ) ).

% SigmaD2
thf(fact_186_SigmaE2,axiom,
    ! [B: $tType,A: $tType,A5: A,B5: B,A3: set @ A,B3: A > ( set @ B )] :
      ( ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ A5 @ B5 ) @ ( product_Sigma @ A @ B @ A3 @ B3 ) )
     => ~ ( ( member @ A @ A5 @ A3 )
         => ~ ( member @ B @ B5 @ ( B3 @ A5 ) ) ) ) ).

% SigmaE2
thf(fact_187_rtranclE,axiom,
    ! [A: $tType,A5: A,B5: A,R: set @ ( product_prod @ A @ A )] :
      ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ A5 @ B5 ) @ ( transitive_rtrancl @ A @ R ) )
     => ( ( A5 != B5 )
       => ~ ! [Y2: A] :
              ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ A5 @ Y2 ) @ ( transitive_rtrancl @ A @ R ) )
             => ~ ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ Y2 @ B5 ) @ R ) ) ) ) ).

% rtranclE
thf(fact_188_rtrancl_Ocases,axiom,
    ! [A: $tType,A1: A,A22: A,R: set @ ( product_prod @ A @ A )] :
      ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ A1 @ A22 ) @ ( transitive_rtrancl @ A @ R ) )
     => ( ( A22 != A1 )
       => ~ ! [B4: A] :
              ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ A1 @ B4 ) @ ( transitive_rtrancl @ A @ R ) )
             => ~ ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ B4 @ A22 ) @ R ) ) ) ) ).

% rtrancl.cases
thf(fact_189_rtrancl_Osimps,axiom,
    ! [A: $tType,A1: A,A22: A,R: set @ ( product_prod @ A @ A )] :
      ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ A1 @ A22 ) @ ( transitive_rtrancl @ A @ R ) )
      = ( ? [A4: A] :
            ( ( A1 = A4 )
            & ( A22 = A4 ) )
        | ? [A4: A,B6: A,C3: A] :
            ( ( A1 = A4 )
            & ( A22 = C3 )
            & ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ A4 @ B6 ) @ ( transitive_rtrancl @ A @ R ) )
            & ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ B6 @ C3 ) @ R ) ) ) ) ).

% rtrancl.simps
thf(fact_190_rtrancl__trans,axiom,
    ! [A: $tType,X4: A,Y3: A,R: set @ ( product_prod @ A @ A ),Z: A] :
      ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ X4 @ Y3 ) @ ( transitive_rtrancl @ A @ R ) )
     => ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ Y3 @ Z ) @ ( transitive_rtrancl @ A @ R ) )
       => ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ X4 @ Z ) @ ( transitive_rtrancl @ A @ R ) ) ) ) ).

% rtrancl_trans
thf(fact_191_rtrancl__induct,axiom,
    ! [A: $tType,A5: A,B5: A,R: set @ ( product_prod @ A @ A ),P: A > $o] :
      ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ A5 @ B5 ) @ ( transitive_rtrancl @ A @ R ) )
     => ( ( P @ A5 )
       => ( ! [Y2: A,Z2: A] :
              ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ A5 @ Y2 ) @ ( transitive_rtrancl @ A @ R ) )
             => ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ Y2 @ Z2 ) @ R )
               => ( ( P @ Y2 )
                 => ( P @ Z2 ) ) ) )
         => ( P @ B5 ) ) ) ) ).

% rtrancl_induct
thf(fact_192_rtrancl_Oinducts,axiom,
    ! [A: $tType,X1: A,X22: A,R: set @ ( product_prod @ A @ A ),P: A > A > $o] :
      ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ X1 @ X22 ) @ ( transitive_rtrancl @ A @ R ) )
     => ( ! [A6: A] : ( P @ A6 @ A6 )
       => ( ! [A6: A,B4: A,C5: A] :
              ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ A6 @ B4 ) @ ( transitive_rtrancl @ A @ R ) )
             => ( ( P @ A6 @ B4 )
               => ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ B4 @ C5 ) @ R )
                 => ( P @ A6 @ C5 ) ) ) )
         => ( P @ X1 @ X22 ) ) ) ) ).

% rtrancl.inducts
thf(fact_193_converse__rtranclE,axiom,
    ! [A: $tType,X4: A,Z: A,R: set @ ( product_prod @ A @ A )] :
      ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ X4 @ Z ) @ ( transitive_rtrancl @ A @ R ) )
     => ( ( X4 != Z )
       => ~ ! [Y2: A] :
              ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ X4 @ Y2 ) @ R )
             => ~ ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ Y2 @ Z ) @ ( transitive_rtrancl @ A @ R ) ) ) ) ) ).

% converse_rtranclE
thf(fact_194_rtrancl_Ortrancl__refl,axiom,
    ! [A: $tType,A5: A,R: set @ ( product_prod @ A @ A )] : ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ A5 @ A5 ) @ ( transitive_rtrancl @ A @ R ) ) ).

% rtrancl.rtrancl_refl
thf(fact_195_converse__rtrancl__induct,axiom,
    ! [A: $tType,A5: A,B5: A,R: set @ ( product_prod @ A @ A ),P: A > $o] :
      ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ A5 @ B5 ) @ ( transitive_rtrancl @ A @ R ) )
     => ( ( P @ B5 )
       => ( ! [Y2: A,Z2: A] :
              ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ Y2 @ Z2 ) @ R )
             => ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ Z2 @ B5 ) @ ( transitive_rtrancl @ A @ R ) )
               => ( ( P @ Z2 )
                 => ( P @ Y2 ) ) ) )
         => ( P @ A5 ) ) ) ) ).

% converse_rtrancl_induct
thf(fact_196_rtrancl_Ortrancl__into__rtrancl,axiom,
    ! [A: $tType,A5: A,B5: A,R: set @ ( product_prod @ A @ A ),C2: A] :
      ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ A5 @ B5 ) @ ( transitive_rtrancl @ A @ R ) )
     => ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ B5 @ C2 ) @ R )
       => ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ A5 @ C2 ) @ ( transitive_rtrancl @ A @ R ) ) ) ) ).

% rtrancl.rtrancl_into_rtrancl
thf(fact_197_converse__rtrancl__into__rtrancl,axiom,
    ! [A: $tType,A5: A,B5: A,R: set @ ( product_prod @ A @ A ),C2: A] :
      ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ A5 @ B5 ) @ R )
     => ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ B5 @ C2 ) @ ( transitive_rtrancl @ A @ R ) )
       => ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ A5 @ C2 ) @ ( transitive_rtrancl @ A @ R ) ) ) ) ).

% converse_rtrancl_into_rtrancl
thf(fact_198_rtrancl__mono,axiom,
    ! [A: $tType,R: set @ ( product_prod @ A @ A ),S: set @ ( product_prod @ A @ A )] :
      ( ( ord_less_eq @ ( set @ ( product_prod @ A @ A ) ) @ R @ S )
     => ( ord_less_eq @ ( set @ ( product_prod @ A @ A ) ) @ ( transitive_rtrancl @ A @ R ) @ ( transitive_rtrancl @ A @ S ) ) ) ).

% rtrancl_mono
thf(fact_199_rtrancl__subset,axiom,
    ! [A: $tType,R2: set @ ( product_prod @ A @ A ),S3: set @ ( product_prod @ A @ A )] :
      ( ( ord_less_eq @ ( set @ ( product_prod @ A @ A ) ) @ R2 @ S3 )
     => ( ( ord_less_eq @ ( set @ ( product_prod @ A @ A ) ) @ S3 @ ( transitive_rtrancl @ A @ R2 ) )
       => ( ( transitive_rtrancl @ A @ S3 )
          = ( transitive_rtrancl @ A @ R2 ) ) ) ) ).

% rtrancl_subset
thf(fact_200_rtrancl__subset__rtrancl,axiom,
    ! [A: $tType,R: set @ ( product_prod @ A @ A ),S: set @ ( product_prod @ A @ A )] :
      ( ( ord_less_eq @ ( set @ ( product_prod @ A @ A ) ) @ R @ ( transitive_rtrancl @ A @ S ) )
     => ( ord_less_eq @ ( set @ ( product_prod @ A @ A ) ) @ ( transitive_rtrancl @ A @ R ) @ ( transitive_rtrancl @ A @ S ) ) ) ).

% rtrancl_subset_rtrancl
thf(fact_201_Sigma__mono,axiom,
    ! [B: $tType,A: $tType,A3: set @ A,C4: set @ A,B3: A > ( set @ B ),D3: A > ( set @ B )] :
      ( ( ord_less_eq @ ( set @ A ) @ A3 @ C4 )
     => ( ! [X: A] :
            ( ( member @ A @ X @ A3 )
           => ( ord_less_eq @ ( set @ B ) @ ( B3 @ X ) @ ( D3 @ X ) ) )
       => ( ord_less_eq @ ( set @ ( product_prod @ A @ B ) ) @ ( product_Sigma @ A @ B @ A3 @ B3 ) @ ( product_Sigma @ A @ B @ C4 @ D3 ) ) ) ) ).

% Sigma_mono
thf(fact_202_Image__closed__trancl,axiom,
    ! [A: $tType,R: set @ ( product_prod @ A @ A ),X5: set @ A] :
      ( ( ord_less_eq @ ( set @ A ) @ ( image @ A @ A @ R @ X5 ) @ X5 )
     => ( ( image @ A @ A @ ( transitive_rtrancl @ A @ R ) @ X5 )
        = X5 ) ) ).

% Image_closed_trancl
thf(fact_203_Not__Domain__rtrancl,axiom,
    ! [A: $tType,X4: A,R2: set @ ( product_prod @ A @ A ),Y3: A] :
      ( ~ ( member @ A @ X4 @ ( domain @ A @ A @ R2 ) )
     => ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ X4 @ Y3 ) @ ( transitive_rtrancl @ A @ R2 ) )
        = ( X4 = Y3 ) ) ) ).

% Not_Domain_rtrancl
thf(fact_204_Times__subset__cancel2,axiom,
    ! [A: $tType,B: $tType,X4: A,C4: set @ A,A3: set @ B,B3: set @ B] :
      ( ( member @ A @ X4 @ C4 )
     => ( ( ord_less_eq @ ( set @ ( product_prod @ B @ A ) )
          @ ( product_Sigma @ B @ A @ A3
            @ ^ [Uu: B] : C4 )
          @ ( product_Sigma @ B @ A @ B3
            @ ^ [Uu: B] : C4 ) )
        = ( ord_less_eq @ ( set @ B ) @ A3 @ B3 ) ) ) ).

% Times_subset_cancel2
thf(fact_205_finite__rtrancl__Image,axiom,
    ! [A: $tType,R2: set @ ( product_prod @ A @ A ),A3: set @ A] :
      ( ( finite_finite2 @ ( product_prod @ A @ A ) @ R2 )
     => ( ( finite_finite2 @ A @ A3 )
       => ( finite_finite2 @ A @ ( image @ A @ A @ ( transitive_rtrancl @ A @ R2 ) @ A3 ) ) ) ) ).

% finite_rtrancl_Image
thf(fact_206_infinite__cartesian__product,axiom,
    ! [B: $tType,A: $tType,A3: set @ A,B3: set @ B] :
      ( ~ ( finite_finite2 @ A @ A3 )
     => ( ~ ( finite_finite2 @ B @ B3 )
       => ~ ( finite_finite2 @ ( product_prod @ A @ B )
            @ ( product_Sigma @ A @ B @ A3
              @ ^ [Uu: A] : B3 ) ) ) ) ).

% infinite_cartesian_product
thf(fact_207_old_Oprod_Orec,axiom,
    ! [A: $tType,T: $tType,B: $tType,F1: A > B > T,A5: A,B5: B] :
      ( ( product_rec_prod @ A @ B @ T @ F1 @ ( product_Pair @ A @ B @ A5 @ B5 ) )
      = ( F1 @ A5 @ B5 ) ) ).

% old.prod.rec
thf(fact_208_predicate1I,axiom,
    ! [A: $tType,P: A > $o,Q: A > $o] :
      ( ! [X: A] :
          ( ( P @ X )
         => ( Q @ X ) )
     => ( ord_less_eq @ ( A > $o ) @ P @ Q ) ) ).

% predicate1I
thf(fact_209_order__refl,axiom,
    ! [A: $tType] :
      ( ( preorder @ A )
     => ! [X4: A] : ( ord_less_eq @ A @ X4 @ X4 ) ) ).

% order_refl
thf(fact_210_predicate2I,axiom,
    ! [B: $tType,A: $tType,P: A > B > $o,Q: A > B > $o] :
      ( ! [X: A,Y2: B] :
          ( ( P @ X @ Y2 )
         => ( Q @ X @ Y2 ) )
     => ( ord_less_eq @ ( A > B > $o ) @ P @ Q ) ) ).

% predicate2I
thf(fact_211_order__subst1,axiom,
    ! [A: $tType,B: $tType] :
      ( ( ( order @ B )
        & ( order @ A ) )
     => ! [A5: A,F2: B > A,B5: B,C2: B] :
          ( ( ord_less_eq @ A @ A5 @ ( F2 @ B5 ) )
         => ( ( ord_less_eq @ B @ B5 @ C2 )
           => ( ! [X: B,Y2: B] :
                  ( ( ord_less_eq @ B @ X @ Y2 )
                 => ( ord_less_eq @ A @ ( F2 @ X ) @ ( F2 @ Y2 ) ) )
             => ( ord_less_eq @ A @ A5 @ ( F2 @ C2 ) ) ) ) ) ) ).

% order_subst1
thf(fact_212_order__subst2,axiom,
    ! [A: $tType,C: $tType] :
      ( ( ( order @ C )
        & ( order @ A ) )
     => ! [A5: A,B5: A,F2: A > C,C2: C] :
          ( ( ord_less_eq @ A @ A5 @ B5 )
         => ( ( ord_less_eq @ C @ ( F2 @ B5 ) @ C2 )
           => ( ! [X: A,Y2: A] :
                  ( ( ord_less_eq @ A @ X @ Y2 )
                 => ( ord_less_eq @ C @ ( F2 @ X ) @ ( F2 @ Y2 ) ) )
             => ( ord_less_eq @ C @ ( F2 @ A5 ) @ C2 ) ) ) ) ) ).

% order_subst2
thf(fact_213_ord__eq__le__subst,axiom,
    ! [A: $tType,B: $tType] :
      ( ( ( ord @ B )
        & ( ord @ A ) )
     => ! [A5: A,F2: B > A,B5: B,C2: B] :
          ( ( A5
            = ( F2 @ B5 ) )
         => ( ( ord_less_eq @ B @ B5 @ C2 )
           => ( ! [X: B,Y2: B] :
                  ( ( ord_less_eq @ B @ X @ Y2 )
                 => ( ord_less_eq @ A @ ( F2 @ X ) @ ( F2 @ Y2 ) ) )
             => ( ord_less_eq @ A @ A5 @ ( F2 @ C2 ) ) ) ) ) ) ).

% ord_eq_le_subst
thf(fact_214_ord__le__eq__subst,axiom,
    ! [A: $tType,B: $tType] :
      ( ( ( ord @ B )
        & ( ord @ A ) )
     => ! [A5: A,B5: A,F2: A > B,C2: B] :
          ( ( ord_less_eq @ A @ A5 @ B5 )
         => ( ( ( F2 @ B5 )
              = C2 )
           => ( ! [X: A,Y2: A] :
                  ( ( ord_less_eq @ A @ X @ Y2 )
                 => ( ord_less_eq @ B @ ( F2 @ X ) @ ( F2 @ Y2 ) ) )
             => ( ord_less_eq @ B @ ( F2 @ A5 ) @ C2 ) ) ) ) ) ).

% ord_le_eq_subst
thf(fact_215_eq__iff,axiom,
    ! [A: $tType] :
      ( ( order @ A )
     => ( ( ^ [Y4: A,Z3: A] : Y4 = Z3 )
        = ( ^ [X3: A,Y: A] :
              ( ( ord_less_eq @ A @ X3 @ Y )
              & ( ord_less_eq @ A @ Y @ X3 ) ) ) ) ) ).

% eq_iff
thf(fact_216_antisym,axiom,
    ! [A: $tType] :
      ( ( order @ A )
     => ! [X4: A,Y3: A] :
          ( ( ord_less_eq @ A @ X4 @ Y3 )
         => ( ( ord_less_eq @ A @ Y3 @ X4 )
           => ( X4 = Y3 ) ) ) ) ).

% antisym
thf(fact_217_linear,axiom,
    ! [A: $tType] :
      ( ( linorder @ A )
     => ! [X4: A,Y3: A] :
          ( ( ord_less_eq @ A @ X4 @ Y3 )
          | ( ord_less_eq @ A @ Y3 @ X4 ) ) ) ).

% linear
thf(fact_218_eq__refl,axiom,
    ! [A: $tType] :
      ( ( preorder @ A )
     => ! [X4: A,Y3: A] :
          ( ( X4 = Y3 )
         => ( ord_less_eq @ A @ X4 @ Y3 ) ) ) ).

% eq_refl
thf(fact_219_le__cases,axiom,
    ! [A: $tType] :
      ( ( linorder @ A )
     => ! [X4: A,Y3: A] :
          ( ~ ( ord_less_eq @ A @ X4 @ Y3 )
         => ( ord_less_eq @ A @ Y3 @ X4 ) ) ) ).

% le_cases
thf(fact_220_order_Otrans,axiom,
    ! [A: $tType] :
      ( ( order @ A )
     => ! [A5: A,B5: A,C2: A] :
          ( ( ord_less_eq @ A @ A5 @ B5 )
         => ( ( ord_less_eq @ A @ B5 @ C2 )
           => ( ord_less_eq @ A @ A5 @ C2 ) ) ) ) ).

% order.trans
thf(fact_221_le__cases3,axiom,
    ! [A: $tType] :
      ( ( linorder @ A )
     => ! [X4: A,Y3: A,Z: A] :
          ( ( ( ord_less_eq @ A @ X4 @ Y3 )
           => ~ ( ord_less_eq @ A @ Y3 @ Z ) )
         => ( ( ( ord_less_eq @ A @ Y3 @ X4 )
             => ~ ( ord_less_eq @ A @ X4 @ Z ) )
           => ( ( ( ord_less_eq @ A @ X4 @ Z )
               => ~ ( ord_less_eq @ A @ Z @ Y3 ) )
             => ( ( ( ord_less_eq @ A @ Z @ Y3 )
                 => ~ ( ord_less_eq @ A @ Y3 @ X4 ) )
               => ( ( ( ord_less_eq @ A @ Y3 @ Z )
                   => ~ ( ord_less_eq @ A @ Z @ X4 ) )
                 => ~ ( ( ord_less_eq @ A @ Z @ X4 )
                     => ~ ( ord_less_eq @ A @ X4 @ Y3 ) ) ) ) ) ) ) ) ).

% le_cases3
thf(fact_222_antisym__conv,axiom,
    ! [A: $tType] :
      ( ( order @ A )
     => ! [Y3: A,X4: A] :
          ( ( ord_less_eq @ A @ Y3 @ X4 )
         => ( ( ord_less_eq @ A @ X4 @ Y3 )
            = ( X4 = Y3 ) ) ) ) ).

% antisym_conv
thf(fact_223_order__class_Oorder_Oeq__iff,axiom,
    ! [A: $tType] :
      ( ( order @ A )
     => ( ( ^ [Y4: A,Z3: A] : Y4 = Z3 )
        = ( ^ [A4: A,B6: A] :
              ( ( ord_less_eq @ A @ A4 @ B6 )
              & ( ord_less_eq @ A @ B6 @ A4 ) ) ) ) ) ).

% order_class.order.eq_iff
thf(fact_224_ord__eq__le__trans,axiom,
    ! [A: $tType] :
      ( ( ord @ A )
     => ! [A5: A,B5: A,C2: A] :
          ( ( A5 = B5 )
         => ( ( ord_less_eq @ A @ B5 @ C2 )
           => ( ord_less_eq @ A @ A5 @ C2 ) ) ) ) ).

% ord_eq_le_trans
thf(fact_225_ord__le__eq__trans,axiom,
    ! [A: $tType] :
      ( ( ord @ A )
     => ! [A5: A,B5: A,C2: A] :
          ( ( ord_less_eq @ A @ A5 @ B5 )
         => ( ( B5 = C2 )
           => ( ord_less_eq @ A @ A5 @ C2 ) ) ) ) ).

% ord_le_eq_trans
thf(fact_226_order__class_Oorder_Oantisym,axiom,
    ! [A: $tType] :
      ( ( order @ A )
     => ! [A5: A,B5: A] :
          ( ( ord_less_eq @ A @ A5 @ B5 )
         => ( ( ord_less_eq @ A @ B5 @ A5 )
           => ( A5 = B5 ) ) ) ) ).

% order_class.order.antisym
thf(fact_227_order__trans,axiom,
    ! [A: $tType] :
      ( ( preorder @ A )
     => ! [X4: A,Y3: A,Z: A] :
          ( ( ord_less_eq @ A @ X4 @ Y3 )
         => ( ( ord_less_eq @ A @ Y3 @ Z )
           => ( ord_less_eq @ A @ X4 @ Z ) ) ) ) ).

% order_trans
thf(fact_228_dual__order_Orefl,axiom,
    ! [A: $tType] :
      ( ( order @ A )
     => ! [A5: A] : ( ord_less_eq @ A @ A5 @ A5 ) ) ).

% dual_order.refl
thf(fact_229_linorder__wlog,axiom,
    ! [A: $tType] :
      ( ( linorder @ A )
     => ! [P: A > A > $o,A5: A,B5: A] :
          ( ! [A6: A,B4: A] :
              ( ( ord_less_eq @ A @ A6 @ B4 )
             => ( P @ A6 @ B4 ) )
         => ( ! [A6: A,B4: A] :
                ( ( P @ B4 @ A6 )
               => ( P @ A6 @ B4 ) )
           => ( P @ A5 @ B5 ) ) ) ) ).

% linorder_wlog
thf(fact_230_dual__order_Otrans,axiom,
    ! [A: $tType] :
      ( ( order @ A )
     => ! [B5: A,A5: A,C2: A] :
          ( ( ord_less_eq @ A @ B5 @ A5 )
         => ( ( ord_less_eq @ A @ C2 @ B5 )
           => ( ord_less_eq @ A @ C2 @ A5 ) ) ) ) ).

% dual_order.trans
thf(fact_231_dual__order_Oeq__iff,axiom,
    ! [A: $tType] :
      ( ( order @ A )
     => ( ( ^ [Y4: A,Z3: A] : Y4 = Z3 )
        = ( ^ [A4: A,B6: A] :
              ( ( ord_less_eq @ A @ B6 @ A4 )
              & ( ord_less_eq @ A @ A4 @ B6 ) ) ) ) ) ).

% dual_order.eq_iff
thf(fact_232_dual__order_Oantisym,axiom,
    ! [A: $tType] :
      ( ( order @ A )
     => ! [B5: A,A5: A] :
          ( ( ord_less_eq @ A @ B5 @ A5 )
         => ( ( ord_less_eq @ A @ A5 @ B5 )
           => ( A5 = B5 ) ) ) ) ).

% dual_order.antisym
thf(fact_233_predicate2D,axiom,
    ! [A: $tType,B: $tType,P: A > B > $o,Q: A > B > $o,X4: A,Y3: B] :
      ( ( ord_less_eq @ ( A > B > $o ) @ P @ Q )
     => ( ( P @ X4 @ Y3 )
       => ( Q @ X4 @ Y3 ) ) ) ).

% predicate2D
thf(fact_234_rev__predicate2D,axiom,
    ! [A: $tType,B: $tType,P: A > B > $o,X4: A,Y3: B,Q: A > B > $o] :
      ( ( P @ X4 @ Y3 )
     => ( ( ord_less_eq @ ( A > B > $o ) @ P @ Q )
       => ( Q @ X4 @ Y3 ) ) ) ).

% rev_predicate2D
thf(fact_235_predicate1D,axiom,
    ! [A: $tType,P: A > $o,Q: A > $o,X4: A] :
      ( ( ord_less_eq @ ( A > $o ) @ P @ Q )
     => ( ( P @ X4 )
       => ( Q @ X4 ) ) ) ).

% predicate1D
thf(fact_236_rev__predicate1D,axiom,
    ! [A: $tType,P: A > $o,X4: A,Q: A > $o] :
      ( ( P @ X4 )
     => ( ( ord_less_eq @ ( A > $o ) @ P @ Q )
       => ( Q @ X4 ) ) ) ).

% rev_predicate1D
thf(fact_237_le__funD,axiom,
    ! [B: $tType,A: $tType] :
      ( ( ord @ B )
     => ! [F2: A > B,G: A > B,X4: A] :
          ( ( ord_less_eq @ ( A > B ) @ F2 @ G )
         => ( ord_less_eq @ B @ ( F2 @ X4 ) @ ( G @ X4 ) ) ) ) ).

% le_funD
thf(fact_238_le__funE,axiom,
    ! [B: $tType,A: $tType] :
      ( ( ord @ B )
     => ! [F2: A > B,G: A > B,X4: A] :
          ( ( ord_less_eq @ ( A > B ) @ F2 @ G )
         => ( ord_less_eq @ B @ ( F2 @ X4 ) @ ( G @ X4 ) ) ) ) ).

% le_funE
thf(fact_239_le__funI,axiom,
    ! [B: $tType,A: $tType] :
      ( ( ord @ B )
     => ! [F2: A > B,G: A > B] :
          ( ! [X: A] : ( ord_less_eq @ B @ ( F2 @ X ) @ ( G @ X ) )
         => ( ord_less_eq @ ( A > B ) @ F2 @ G ) ) ) ).

% le_funI
thf(fact_240_le__fun__def,axiom,
    ! [B: $tType,A: $tType] :
      ( ( ord @ B )
     => ( ( ord_less_eq @ ( A > B ) )
        = ( ^ [F4: A > B,G4: A > B] :
            ! [X3: A] : ( ord_less_eq @ B @ ( F4 @ X3 ) @ ( G4 @ X3 ) ) ) ) ) ).

% le_fun_def
thf(fact_241_relChain__def,axiom,
    ! [B: $tType,A: $tType] :
      ( ( ord @ B )
     => ( ( bNF_Ca1785829860lChain @ A @ B )
        = ( ^ [R3: set @ ( product_prod @ A @ A ),As: A > B] :
            ! [I: A,J: A] :
              ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ I @ J ) @ R3 )
             => ( ord_less_eq @ B @ ( As @ I ) @ ( As @ J ) ) ) ) ) ) ).

% relChain_def
thf(fact_242_rtc__isPath,axiom,
    ! [U: nat,V: nat] :
      ( ( member @ ( product_prod @ nat @ nat ) @ ( product_Pair @ nat @ nat @ U @ V ) @ ( transitive_rtrancl @ nat @ ( e @ a @ c ) ) )
     => ? [P3: list @ ( product_prod @ nat @ nat )] : ( isPath @ a @ c @ U @ P3 @ V ) ) ).

% rtc_isPath
thf(fact_243_isSPath__pathLE,axiom,
    ! [S: nat,P4: list @ ( product_prod @ nat @ nat ),T4: nat] :
      ( ( isPath @ a @ c @ S @ P4 @ T4 )
     => ? [P5: list @ ( product_prod @ nat @ nat )] : ( isSimplePath @ a @ c @ S @ P5 @ T4 ) ) ).

% isSPath_pathLE
thf(fact_244_connected__def,axiom,
    ! [U: nat,V: nat] :
      ( ( connected @ a @ c @ U @ V )
      = ( ? [P2: list @ ( product_prod @ nat @ nat )] : ( isPath @ a @ c @ U @ P2 @ V ) ) ) ).

% connected_def
thf(fact_245_shortestPath__is__path,axiom,
    ! [U: nat,P4: list @ ( product_prod @ nat @ nat ),V: nat] :
      ( ( isShortestPath @ a @ c @ U @ P4 @ V )
     => ( isPath @ a @ c @ U @ P4 @ V ) ) ).

% shortestPath_is_path
thf(fact_246_isPath__ex__edge1,axiom,
    ! [U: nat,P4: list @ ( product_prod @ nat @ nat ),V: nat,U1: nat,V1: nat] :
      ( ( isPath @ a @ c @ U @ P4 @ V )
     => ( ( member @ ( product_prod @ nat @ nat ) @ ( product_Pair @ nat @ nat @ U1 @ V1 ) @ ( set2 @ ( product_prod @ nat @ nat ) @ P4 ) )
       => ( ( U1 != U )
         => ? [U23: nat] : ( member @ ( product_prod @ nat @ nat ) @ ( product_Pair @ nat @ nat @ U23 @ U1 ) @ ( set2 @ ( product_prod @ nat @ nat ) @ P4 ) ) ) ) ) ).

% isPath_ex_edge1
thf(fact_247_isPath__ex__edge2,axiom,
    ! [U: nat,P4: list @ ( product_prod @ nat @ nat ),V: nat,U1: nat,V1: nat] :
      ( ( isPath @ a @ c @ U @ P4 @ V )
     => ( ( member @ ( product_prod @ nat @ nat ) @ ( product_Pair @ nat @ nat @ U1 @ V1 ) @ ( set2 @ ( product_prod @ nat @ nat ) @ P4 ) )
       => ( ( V1 != V )
         => ? [V23: nat] : ( member @ ( product_prod @ nat @ nat ) @ ( product_Pair @ nat @ nat @ V1 @ V23 ) @ ( set2 @ ( product_prod @ nat @ nat ) @ P4 ) ) ) ) ) ).

% isPath_ex_edge2
thf(fact_248_isPath__edgeset,axiom,
    ! [U: nat,P4: list @ ( product_prod @ nat @ nat ),V: nat,E2: product_prod @ nat @ nat] :
      ( ( isPath @ a @ c @ U @ P4 @ V )
     => ( ( member @ ( product_prod @ nat @ nat ) @ E2 @ ( set2 @ ( product_prod @ nat @ nat ) @ P4 ) )
       => ( member @ ( product_prod @ nat @ nat ) @ E2 @ ( e @ a @ c ) ) ) ) ).

% isPath_edgeset
thf(fact_249_isPath__rtc,axiom,
    ! [U: nat,P4: list @ ( product_prod @ nat @ nat ),V: nat] :
      ( ( isPath @ a @ c @ U @ P4 @ V )
     => ( member @ ( product_prod @ nat @ nat ) @ ( product_Pair @ nat @ nat @ U @ V ) @ ( transitive_rtrancl @ nat @ ( e @ a @ c ) ) ) ) ).

% isPath_rtc
thf(fact_250_Graph_OisPath__ex__edge2,axiom,
    ! [Capacity: $tType] :
      ( ( linordered_idom @ Capacity )
     => ! [C2: ( product_prod @ nat @ nat ) > Capacity,U: nat,P4: list @ ( product_prod @ nat @ nat ),V: nat,U1: nat,V1: nat] :
          ( ( isPath @ Capacity @ C2 @ U @ P4 @ V )
         => ( ( member @ ( product_prod @ nat @ nat ) @ ( product_Pair @ nat @ nat @ U1 @ V1 ) @ ( set2 @ ( product_prod @ nat @ nat ) @ P4 ) )
           => ( ( V1 != V )
             => ? [V23: nat] : ( member @ ( product_prod @ nat @ nat ) @ ( product_Pair @ nat @ nat @ V1 @ V23 ) @ ( set2 @ ( product_prod @ nat @ nat ) @ P4 ) ) ) ) ) ) ).

% Graph.isPath_ex_edge2
thf(fact_251_Graph_OisPath__ex__edge1,axiom,
    ! [Capacity: $tType] :
      ( ( linordered_idom @ Capacity )
     => ! [C2: ( product_prod @ nat @ nat ) > Capacity,U: nat,P4: list @ ( product_prod @ nat @ nat ),V: nat,U1: nat,V1: nat] :
          ( ( isPath @ Capacity @ C2 @ U @ P4 @ V )
         => ( ( member @ ( product_prod @ nat @ nat ) @ ( product_Pair @ nat @ nat @ U1 @ V1 ) @ ( set2 @ ( product_prod @ nat @ nat ) @ P4 ) )
           => ( ( U1 != U )
             => ? [U23: nat] : ( member @ ( product_prod @ nat @ nat ) @ ( product_Pair @ nat @ nat @ U23 @ U1 ) @ ( set2 @ ( product_prod @ nat @ nat ) @ P4 ) ) ) ) ) ) ).

% Graph.isPath_ex_edge1
thf(fact_252_Graph_OisPath__edgeset,axiom,
    ! [Capacity: $tType] :
      ( ( linordered_idom @ Capacity )
     => ! [C2: ( product_prod @ nat @ nat ) > Capacity,U: nat,P4: list @ ( product_prod @ nat @ nat ),V: nat,E2: product_prod @ nat @ nat] :
          ( ( isPath @ Capacity @ C2 @ U @ P4 @ V )
         => ( ( member @ ( product_prod @ nat @ nat ) @ E2 @ ( set2 @ ( product_prod @ nat @ nat ) @ P4 ) )
           => ( member @ ( product_prod @ nat @ nat ) @ E2 @ ( e @ Capacity @ C2 ) ) ) ) ) ).

% Graph.isPath_edgeset
thf(fact_253_Graph_Oconnected__def,axiom,
    ! [Capacity: $tType] :
      ( ( linordered_idom @ Capacity )
     => ( ( connected @ Capacity )
        = ( ^ [C3: ( product_prod @ nat @ nat ) > Capacity,U3: nat,V2: nat] :
            ? [P2: list @ ( product_prod @ nat @ nat )] : ( isPath @ Capacity @ C3 @ U3 @ P2 @ V2 ) ) ) ) ).

% Graph.connected_def
thf(fact_254_Graph_OshortestPath__is__path,axiom,
    ! [Capacity: $tType] :
      ( ( linordered_idom @ Capacity )
     => ! [C2: ( product_prod @ nat @ nat ) > Capacity,U: nat,P4: list @ ( product_prod @ nat @ nat ),V: nat] :
          ( ( isShortestPath @ Capacity @ C2 @ U @ P4 @ V )
         => ( isPath @ Capacity @ C2 @ U @ P4 @ V ) ) ) ).

% Graph.shortestPath_is_path
thf(fact_255_Graph_OisPath_Ocong,axiom,
    ! [Capacity: $tType] :
      ( ( linordered_idom @ Capacity )
     => ( ( isPath @ Capacity )
        = ( isPath @ Capacity ) ) ) ).

% Graph.isPath.cong

% Subclasses (5)
thf(subcl_Rings_Olinordered__idom___HOL_Otype,axiom,
    ! [A: $tType] :
      ( ( linordered_idom @ A )
     => ( type @ A ) ) ).

thf(subcl_Rings_Olinordered__idom___Orderings_Oord,axiom,
    ! [A: $tType] :
      ( ( linordered_idom @ A )
     => ( ord @ A ) ) ).

thf(subcl_Rings_Olinordered__idom___Orderings_Oorder,axiom,
    ! [A: $tType] :
      ( ( linordered_idom @ A )
     => ( order @ A ) ) ).

thf(subcl_Rings_Olinordered__idom___Orderings_Olinorder,axiom,
    ! [A: $tType] :
      ( ( linordered_idom @ A )
     => ( linorder @ A ) ) ).

thf(subcl_Rings_Olinordered__idom___Orderings_Opreorder,axiom,
    ! [A: $tType] :
      ( ( linordered_idom @ A )
     => ( preorder @ A ) ) ).

% Type constructors (18)
thf(tcon_fun___Orderings_Opreorder,axiom,
    ! [A9: $tType,A10: $tType] :
      ( ( preorder @ A10 )
     => ( preorder @ ( A9 > A10 ) ) ) ).

thf(tcon_fun___Finite__Set_Ofinite,axiom,
    ! [A9: $tType,A10: $tType] :
      ( ( ( finite_finite @ A9 )
        & ( finite_finite @ A10 ) )
     => ( finite_finite @ ( A9 > A10 ) ) ) ).

thf(tcon_fun___Orderings_Oorder,axiom,
    ! [A9: $tType,A10: $tType] :
      ( ( order @ A10 )
     => ( order @ ( A9 > A10 ) ) ) ).

thf(tcon_fun___Orderings_Oord,axiom,
    ! [A9: $tType,A10: $tType] :
      ( ( ord @ A10 )
     => ( ord @ ( A9 > A10 ) ) ) ).

thf(tcon_Nat_Onat___Orderings_Opreorder_1,axiom,
    preorder @ nat ).

thf(tcon_Nat_Onat___Orderings_Olinorder,axiom,
    linorder @ nat ).

thf(tcon_Nat_Onat___Orderings_Oorder_2,axiom,
    order @ nat ).

thf(tcon_Nat_Onat___Orderings_Oord_3,axiom,
    ord @ nat ).

thf(tcon_Set_Oset___Orderings_Opreorder_4,axiom,
    ! [A9: $tType] : ( preorder @ ( set @ A9 ) ) ).

thf(tcon_Set_Oset___Finite__Set_Ofinite_5,axiom,
    ! [A9: $tType] :
      ( ( finite_finite @ A9 )
     => ( finite_finite @ ( set @ A9 ) ) ) ).

thf(tcon_Set_Oset___Orderings_Oorder_6,axiom,
    ! [A9: $tType] : ( order @ ( set @ A9 ) ) ).

thf(tcon_Set_Oset___Orderings_Oord_7,axiom,
    ! [A9: $tType] : ( ord @ ( set @ A9 ) ) ).

thf(tcon_HOL_Obool___Orderings_Opreorder_8,axiom,
    preorder @ $o ).

thf(tcon_HOL_Obool___Orderings_Olinorder_9,axiom,
    linorder @ $o ).

thf(tcon_HOL_Obool___Finite__Set_Ofinite_10,axiom,
    finite_finite @ $o ).

thf(tcon_HOL_Obool___Orderings_Oorder_11,axiom,
    order @ $o ).

thf(tcon_HOL_Obool___Orderings_Oord_12,axiom,
    ord @ $o ).

thf(tcon_Product__Type_Oprod___Finite__Set_Ofinite_13,axiom,
    ! [A9: $tType,A10: $tType] :
      ( ( ( finite_finite @ A9 )
        & ( finite_finite @ A10 ) )
     => ( finite_finite @ ( product_prod @ A9 @ A10 ) ) ) ).

% Free types (1)
thf(tfree_0,hypothesis,
    linordered_idom @ a ).

% Conjectures (1)
thf(conj_0,conjecture,
    finite_finite2 @ ( product_prod @ nat @ nat ) @ ( edmond1803015688pEdges @ a @ c @ s @ t ) ).

%------------------------------------------------------------------------------